• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
      • Gl
      • Witness-cp
      • Ccg
      • Install-not-normalized
      • Rewrite$
      • Removable-runes
      • Efficiency
      • Rewrite-bounds
      • Bash
      • Def-dag-measure
      • Fgl
        • Fgl-rewrite-rules
        • Fgl-function-mode
        • Fgl-object
        • Fgl-handling-if-then-elses
        • Fgl-solving
        • Fgl-getting-bits-from-objects
        • Fgl-primitive-and-meta-rules
        • Fgl-interpreter-overview
        • Fgl-counterexamples
        • 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-fast-alist-support
        • Advanced-equivalence-checking-with-fgl
        • Fgl-array-support
        • Fgl-internals
          • Symbolic-arithmetic
          • Bfr
            • Bfr-eval
            • Bfrstate
            • Bfr->aignet-lit
            • Bounded-lit-fix
            • Bfr-p
            • Bfr-list-fix
            • Aignet-lit->bfr
            • Bfr-listp$
            • Bfrstate>=
            • Bfr-listp-witness
            • Fgl-object-bindings-bfrlist
            • Bfr-negate
            • Bfr-set-var
            • Fgl-bfr-object-bindings-p
            • Bfr-fix
            • Bfr-mode
            • Bfr-mode-is
            • Lbfr-case
            • Bfrstate-case
            • Bfrstate-mode-is
            • Lbfr-mode-is
            • Bfr-mode-p
          • Fgl-interpreter-state
      • 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
    • Testing-utilities
    • Math
  • Fgl-internals

Bfr

An abstraction of the Boolean Function Representation used by GL.

GL was originally designed to operate on ubdds, with support for hons-aigs and aignet added later. To avoid redoing a lot of proof work, a small level of indirection was added.

The particular Boolean function representation that we are using at any particular time is governed by bfr-mode, and operations like bfr-and allow us to construct new function nodes using whatever the current representation is.

To support aignets, it is important for BFRs to be well-formed, i.e. literals whose node index is in bounds for the current aignet. So we also use a bfrstate object which simultaneously tracks the bfr-mode and current bound.

Subtopics

Bfr-eval
Evaluate a BFR under an appropriate BDD/AIG environment.
Bfrstate
Object encoding the bfr-mode and current node index bound, if using AIGNET mode.
Bfr->aignet-lit
Bounded-lit-fix
Bfr-p
Recognizer for valid Boolean Function Representation (bfr) objects.
Bfr-list-fix
Aignet-lit->bfr
Bfr-listp$
(bfr-listp$ x bfrstate) recognizes lists where every element satisfies bfr-p.
Bfrstate>=
Bfr-listp-witness
Fgl-object-bindings-bfrlist
Bfr-negate
Bfr-set-var
Set the nth BFR variable to some value in an AIG/BDD environment.
Fgl-bfr-object-bindings-p
Bfr-fix
Bfr-mode
Determines whether FGL is using ubdds, hons-aigs, or aignet literals as its Boolean function representation.
Bfr-mode-is
Check the current bfr-mode.
Lbfr-case
Choose behavior based on the current bfr mode of a logicman.
Bfrstate-case
Choose behavior based on the current bfr mode of the bfrstate
Bfrstate-mode-is
Check the current bfr-mode of a bfrstate object.
Lbfr-mode-is
Check the current bfr-mode of a logicman stobj
Bfr-mode-p