• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
      • Fgl
        • Fgl-rewrite-rules
        • Fgl-function-mode
        • Fgl-object
        • Fgl-solving
        • Fgl-handling-if-then-elses
        • Fgl-getting-bits-from-objects
        • Fgl-primitive-and-meta-rules
        • Fgl-counterexamples
        • Fgl-interpreter-overview
        • Fgl-correctness-of-binding-free-variables
        • Fgl-debugging
        • Fgl-testbenches
        • Def-fgl-boolean-constraint
        • Fgl-stack
        • Fgl-rewrite-tracing
        • Def-fgl-param-thm
        • Def-fgl-thm
          • Fgl-config
            • Fgl-config-fix
            • Make-fgl-config
              • Fgl-config-p
              • Fgl-config-equiv
              • Fgl-config->toplevel-sat-check
              • Change-fgl-config
              • Fgl-config->skip-vacuity-check
              • Fgl-config->function-modes
              • Fgl-config->trace-rewrites
              • Fgl-config->prof-enabledp
              • Fgl-config->make-ites
              • Fgl-config->reclimit
              • Fgl-config->sat-config-vacuity
              • Fgl-config->rewrite-rule-table
              • Fgl-config->branch-merge-rules
              • Fgl-config->sat-config
          • Fgl-fast-alist-support
          • Fgl-array-support
          • Advanced-equivalence-checking-with-fgl
          • Fgl-fty-support
          • Fgl-internals
        • Vwsim
        • Vl
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • Fgl-config

    Make-fgl-config

    Basic constructor macro for fgl-config structures.

    Syntax
    (make-fgl-config [:trace-rewrites <trace-rewrites>] 
                     [:reclimit <reclimit>] 
                     [:make-ites <make-ites>] 
                     [:rewrite-rule-table <rewrite-rule-table>] 
                     [:branch-merge-rules <branch-merge-rules>] 
                     [:function-modes <function-modes>] 
                     [:prof-enabledp <prof-enabledp>] 
                     [:sat-config <sat-config>] 
                     [:sat-config-vacuity <sat-config-vacuity>] 
                     [:toplevel-sat-check <toplevel-sat-check>] 
                     [:skip-vacuity-check <skip-vacuity-check>]) 
    

    This is the usual way to construct fgl-config structures. It simply conses together a structure with the specified fields.

    This macro generates a new fgl-config structure from scratch. See also change-fgl-config, which can "change" an existing structure, instead.

    Definition

    This is an ordinary make- macro introduced by defprod.

    Macro: make-fgl-config

    (defmacro make-fgl-config (&rest args)
      (std::make-aggregate 'fgl-config
                           args
                           '((:trace-rewrites)
                             (:reclimit . 1000000)
                             (:make-ites)
                             (:rewrite-rule-table)
                             (:branch-merge-rules)
                             (:function-modes)
                             (:prof-enabledp . t)
                             (:sat-config)
                             (:sat-config-vacuity)
                             (:toplevel-sat-check . t)
                             (:skip-vacuity-check))
                           'make-fgl-config
                           nil))

    Function: fgl-config

    (defun fgl-config
           (trace-rewrites reclimit make-ites
                           rewrite-rule-table branch-merge-rules
                           function-modes prof-enabledp
                           sat-config sat-config-vacuity
                           toplevel-sat-check skip-vacuity-check)
     (declare
      (xargs
          :guard (and (booleanp trace-rewrites)
                      (posp reclimit)
                      (booleanp make-ites)
                      (fgl-function-mode-alist-p function-modes)
                      (booleanp prof-enabledp)
                      (fgl-toplevel-sat-check-mode-p toplevel-sat-check)
                      (booleanp skip-vacuity-check))))
     (declare (xargs :guard t))
     (let ((__function__ 'fgl-config))
      (declare (ignorable __function__))
      (b*
       ((trace-rewrites (mbe :logic (bool-fix trace-rewrites)
                             :exec trace-rewrites))
        (reclimit (mbe :logic (pos-fix reclimit)
                       :exec reclimit))
        (make-ites (mbe :logic (bool-fix make-ites)
                        :exec make-ites))
        (function-modes
             (mbe :logic (fgl-function-mode-alist-fix function-modes)
                  :exec function-modes))
        (prof-enabledp (mbe :logic (bool-fix prof-enabledp)
                            :exec prof-enabledp))
        (toplevel-sat-check
         (mbe
             :logic (fgl-toplevel-sat-check-mode-fix toplevel-sat-check)
             :exec toplevel-sat-check))
        (skip-vacuity-check (mbe :logic (bool-fix skip-vacuity-check)
                                 :exec skip-vacuity-check)))
       (std::prod-cons
        (std::prod-cons
           (std::prod-cons trace-rewrites reclimit)
           (std::prod-cons
                make-ites
                (std::prod-cons rewrite-rule-table branch-merge-rules)))
        (std::prod-cons
             (std::prod-cons function-modes
                             (std::prod-cons prof-enabledp sat-config))
             (std::prod-cons sat-config-vacuity
                             (std::prod-cons toplevel-sat-check
                                             skip-vacuity-check)))))))