Infix ACL2

Michael K. Smith

Copyright (C) 1996-97 Computational Logic, Inc. (CLI). All rights reserved.


An infix syntax for ACL2 has been implemented by Michael Smith. Two capabilities are supported.

IACL2

IACL2 is an infix version of the ACL2 theorem proving system that performs I/O in infix format. It is intended to make initial experiments with ACL2 somewhat simpler for those unfamiliar with or opposed to Lisp prefix syntax. (It is not an interface for experts, as some of the more advanced aspects of ACL2 are not supported by the infix parser.) Some examples of the syntax:
    Function idiv (m : integer, n : integer | n ~= 0)
     { ifix ( m/n ) };

    /* Idiv takes two integer arguments, the second of which cannot = zero */

    Theorem distributivity-of-minus-over-plus
     {-(x + y) = -x + -y};

    Theorem car-nth-0 { consp(x) -> x.car = x[0] };

Publishing ACL2

We provide formatting support to help the user publish ACL2 event files. The syntax produced is either standard ACL2 or "conventional" infix mathematical notation with formatted comments and doc-strings. For example, in LaTeX mode comments are formatted as running text, events are indexed and substitutions are made of LaTeX mathematical symbols for various functions. In HTML mode, cross references are created from function usage to definition. Other ouput modes include Scribe and ASCII text. The formatting conventions are user extensible.

More documentation is available. See:

  1. IACL2 README overview.
  2. printer/README provides an overview of printing.
  3. Publishing ACL2 provides the most information on the translation of ACL2 source files to LaTeX, HTML, ascii, and Scribe.
  4. Syntax of IACL2 provides the a fairly extensive description of the infix syntax.