This subdirectory contains two examples of RAC programs:

  hello.cpp: a mindless example intended to illustrate the RAC parser.

  imul/imul.cpp: a toy integer multiplier, described in the ACL22014 paper

      www.russinoff.com/papers/masc.html

    Note, however, that this paper was written before MASC evolved into RAC,
    i.e., when we used SystemC instead of Algorithmic C registers.

    The imul subdirectory also contains the System Verilog version of the
    multiplier, imul.sv, along with scripts slec_script.tcl and
    hector_script.tcl, that invoke the commercial tools SLEC and Hector,
    respectively, to check functional equivalence of imul.sv and imul.cpp.

As described in ../README, compile and run hello.cpp, and parse it with the 
options -r and -a.

Load ACL2 and run the LISP version:

  ACL2 !>(include-book "hello")

  ACL2 !>(in-package "RTL")

  RTL !>(set-print-base 2 state)

  RTL !>(reversebyte #b00011011)


cd to the imul subdirectory and do the same with imul.cpp:

  ACL2 !>(include-book "imul")

  ACL2 !>(in-package "RTL")

  RTL !>(imul 123 456)

Certify the correctness proof:

  RTL !>(certify-book "proof" 1)
