• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
      • Gl
      • Witness-cp
        • Definstantiate
        • Defexample
        • Defwitness
        • Defquantexpr
        • Def-witness-ruleset
          • Witness-disable
          • Witness-enable
        • Witness
        • Defquant
      • Ccg
      • Install-not-normalized
      • Rewrite$
      • Fgl
      • Removable-runes
      • Efficiency
      • Rewrite-bounds
      • Bash
      • Def-dag-measure
      • Bdd
      • Remove-hyps
      • Contextual-rewriting
      • Simp
      • Rewrite$-hyps
      • Bash-term-to-dnf
      • Use-trivial-ancestors-check
      • Minimal-runes
      • Clause-processor-tools
      • Fn-is-body
      • Without-subsumption
      • Rewrite-equiv-hint
      • Def-bounds
      • Rewrite$-context
      • Try-gl-concls
      • Hint-utils
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Witness-cp

Def-witness-ruleset

Name a set of witness-cp rules.

The witness computed-hint macro takes a :ruleset argument that determines which witness-cp rules are allowed to fire. def-witness-ruleset allows one name to abbreviate several actual rules in this context.

Usage:

(def-witness-ruleset foo-rules
  '(foo-instancing
    foo-witnessing
    bar-example-for-foo
    baz-example-for-foo))

After submitting this form, the following invocations of WITNESS are equivalent:

(witness :ruleset foo-rules)
(witness :ruleset (foo-rules))
(witness :ruleset (foo-instancing
                   foo-witnessing
                   bar-example-for-foo
                   baz-example-for-foo))

These rulesets are defined using a table event. If multiple different definitions are given for the same ruleset name, the latest one is always in effect.

Rulesets can contain other rulesets. These are expanded at the time the witness hint is run. A ruleset can be expanded with

(witness-expand-ruleset names (w state))

Witness rules can also be enabled/disabled using witness-enable and witness-disable; these settings take effect when WITNESS is called without specifying a ruleset. Ruleset names may be used in witness-enable and witness-disable just as they are used in the ruleset argument of WITNESS.

Subtopics

Witness-disable
Disable some rules for witness-cp.
Witness-enable
Enable some rules for witness-cp.