• 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
  • Def-fgl-thm

Fgl-config

Config object for the FGL clause processor

This is a product type introduced by defprod.

Fields
trace-rewrites — booleanp
If T, Turn on tracing of rewrite rules -- see fgl-rewrite-tracing.
reclimit — posp
Recursion limit for the FGL interpreter/rewriter. Defaults to 1 million; set smaller to catch rewrite loops faster.
make-ites — booleanp
If NIL (the default), then if the two branches of an IF term rewrite to objects that cannot be merged, FGL produces an error. If T, then it creates an if-then-else object, which allows simplification to proceed but perhaps not in a useful direction.
rewrite-rule-table
The rewrite rule table. Probably shouldn't be changed by the user; instead use the utilities described in fgl-rewrite-rules.
branch-merge-rules
The branch-merge rewrite rule table. Probably shouldn't be changed by the user; instead use the utilities described in fgl-rewrite-rules.
function-modes — fgl-function-mode-alist
The function mode table (see fgl-function-mode). Probably shouldn't be changed by the user; instead use the utilities described in fgl-rewrite-rules.
prof-enabledp — booleanp
If T (the default), then the interpreter collects rule profiling information (like ACL2's accumulated-persistence) and displays it when the interpreter finishes.
sat-config
SAT config object for the final toplevel SAT check. If NIL (the default), then instead uses the attachment for (fgl-toplevel-sat-check-config). If nonnil, should be a fgl-sat-config object. See fgl-solving.
sat-config-vacuity
SAT config object for the vacuity check, if not skipped. If NIL (the default), then instead uses the attachment for (fgl-toplevel-vacuity-check-config). If nonnil, should be a fgl-sat-config object. See fgl-solving.
toplevel-sat-check — fgl-toplevel-sat-check-mode-p
If T (the default), then the FGL clause processor runs the interpreter on the given goal and then tries to prove the validity of the resulting Boolean expression using SAT. If :insert, a preprocessing step inserts an fgl-prove wrapper around the conclusion of the conjecture so that the SAT check will be attempted when the interpreter gets there.. If :nil, then we do neither of these.
skip-vacuity-check — booleanp
If NIL, we use SAT to check vacuity of the hypotheses. Set to T to disable this vacuity check.

Typically, instead of constructing an fgl-config object directly, the user provides arguments to def-fgl-thm or def-fgl-param-thm. In these macros, each field of the fgl-config object is assigned as follows:

  • The explicit value given as a keyword argument to the macro, if there is one
  • Else if the table fgl::fgl-config-table has an entry for the keyword field name, the value to which it is bound
  • Else if the keyword field name prefixed by "FGL-" is bound as a state global, its global value (e.g., keyword :fgl-trace-rewrites for the trace-rewrites config field).
  • Else the default value defined by make-fgl-config.

Subtopics

Fgl-config-fix
Fixing function for fgl-config structures.
Make-fgl-config
Basic constructor macro for fgl-config structures.
Fgl-config-p
Recognizer for fgl-config structures.
Fgl-config-equiv
Basic equivalence relation for fgl-config structures.
Fgl-config->toplevel-sat-check
Get the toplevel-sat-check field from a fgl-config.
Change-fgl-config
Modifying constructor for fgl-config structures.
Fgl-config->skip-vacuity-check
Get the skip-vacuity-check field from a fgl-config.
Fgl-config->function-modes
Get the function-modes field from a fgl-config.
Fgl-config->trace-rewrites
Get the trace-rewrites field from a fgl-config.
Fgl-config->prof-enabledp
Get the prof-enabledp field from a fgl-config.
Fgl-config->make-ites
Get the make-ites field from a fgl-config.
Fgl-config->reclimit
Get the reclimit field from a fgl-config.
Fgl-config->sat-config-vacuity
Get the sat-config-vacuity field from a fgl-config.
Fgl-config->rewrite-rule-table
Get the rewrite-rule-table field from a fgl-config.
Fgl-config->branch-merge-rules
Get the branch-merge-rules field from a fgl-config.
Fgl-config->sat-config
Get the sat-config field from a fgl-config.