• Top
    • Documentation
    • Books
      • Cert.pl
        • Cert_param
          • Preliminaries
          • Using-extended-ACL2-images
          • Distributed-builds
          • Certifying-simple-books
          • Pre-certify-book-commands
          • ACL2-system-feature-dependencies
          • Static-makefiles
          • Optimizing-build-time
          • Raw-lisp-and-other-dependencies
          • Custom-certify-book-commands
          • Include-events
          • Ifdef
          • Ifdef-define
          • Ifndef
          • Ifdef-undefine
          • Ifdef-undefine!
          • Ifdef-define!
          • Include-src-events
        • Community-books
        • Project-dir-alist
        • Bookdata
        • Uncertified-books
        • Book-hash
        • Sysfile
        • Show-books
        • Best-practices
        • Books-reference
        • Where-do-i-place-my-book
        • Books-tour
      • Boolean-reasoning
      • Projects
      • Debugging
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Cert.pl

    Cert_param

    Restricting and modifying community-books certification using make.

    You can restrict the books to be certified using make by adding a stylized ``cert_param:'' comment. For example, suppose that you include the following comment in your book or in a corresponding .acl2 file (see pre-certify-book-commands).

    ; cert_param: (ccl-only)

    Then your make command will only certify that book if your host Lisp is CCL. Moreover, if your host Lisp is not CCL, then make will skip not only the certification of that book but will also not attempt to certify any book that includes it (and recursively).

    The syntax for cert_param comments is as follows, where the whitespace is optional, and each entry without an '=' is just set to 1, that is, it is activated as described below.

    ; cert_param: ( foo = bar , baz = 1 , bla )

    The meaning of an activated cert_param is generally clear from its name, as follows. Additional cert_param values might be supported in the future; you can browse community-books file build/cert.pl for additional supported values. The acl2x, acl2xskip, and reloc_stub values affect only the book itself, not books that include it. However, the other values affect not only the certification of the indicated book but also apply to all books that include it (and recursively).

    • acl2x: use two-pass certification (see set-write-ACL2x)
    • acl2xskip: use skip-proofs during two-pass certification
    • ansi-only: only certify when the host Lisp is an ANSI Common Lisp (hence, not an older version of GCL)
    • ccl-only: only certify when the host Lisp is CCL
    • non-acl2r: only certify when the real numbers are NOT supported, i.e., when NOT using ACL2(r)
    • non-acl2p: only certify when ACL2::parallelism is NOT supported, i.e., when NOT using ACL2(p)
    • non-allegro: only certify when the host Lisp is NOT Allegro CL
    • non-cmucl: only certify when the host Lisp is NOT cmucl
    • non-gcl: only certify when the host Lisp is NOT gcl
    • non-lispworks: only certify when the host Lisp is NOT LispWorks
    • non-sbcl: only certify when the host Lisp is NOT sbcl
    • pcert: use provisional certification (see ACL2::provisional-certification)
    • reloc-stub: print a suitable ``relocation stub'' warning
    • uses-abc: only certify when the external equivalence/model-checking tool ABC is available
    • uses-acl2r: only certify when the real numbers are supported, i.e., with ACL2(r)
    • uses-glucose: only certify when Glucose (a SAT solver) is available
    • uses-ipasir: only certify when Ipasir (a simple C interface to incremental SAT solvers) is available
    • uses-smtlink: only certify when Smtlink (see smt::smtlink) is available
    • uses-stp: only certify when STP (an SMT solver available here) is available (to suppress the use of STP, even when an executable for it seems to be available, set environment variable ACL2_DONT_USE_STP to any non-empty value)
    • uses-quicklisp: only certify when quicklisp is available
    • uses-cpp: only certify when cpp is available. See c$::preprocessing.

    In addition to the non-acl2p cert_param that excludes books from ACL2(p) builds (see ACL2::parallelism), there is also the related ACL2::non-parallel-book utility for turning off waterfall-parallelism.