• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
      • Gl
      • Witness-cp
      • Ccg
      • Install-not-normalized
      • Rewrite$
      • 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-fast-alist-support
        • Fgl-array-support
        • Advanced-equivalence-checking-with-fgl
        • Fgl-fty-support
        • Fgl-internals
          • Symbolic-arithmetic
          • Bfr
            • Bfr-eval
            • Bfrstate
            • Bfr->aignet-lit
            • Bfr-p
            • Bounded-lit-fix
            • Bfr-list-fix
            • Aignet-lit->bfr
            • Variable-g-bindings
            • Bfr-listp$
            • Bfrstate>=
            • Bfr-listp-witness
            • Fgl-object-bindings-bfrlist
            • Bfr-set-var
            • Bfr-negate
            • Bfr-fix
            • Fgl-bfr-object-bindings-p
            • Bfr-mode
            • Bfr-mode-is
            • Lbfr-case
            • Bfrstate-case
            • Bfrstate-mode-is
            • Lbfr-mode-is
            • Bfr-mode-p
          • Fgl-interpreter-state
      • 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
  • Fgl-internals

Bfr

An abstraction of the Boolean Function Representation used by FGL.

GL, the predecessor to FGL, was originally designed to represent Boolean functions with on ubdds, with support for hons-aigs added later. In one mode of operation, all Boolean functions were represented with BDDs, and in another, all Boolean functions were represented with AIGs. BFR was a type that depended on the mode, meaning UBDD when in BDD mode and AIG when in AIG mode.

FGL currently only supports representing Boolean functions using references into an AIGNET stobj, but in case we want to add support for other representations we still use the BFR concept. The particular representation used is governed by a bfr-mode object stored in the logicman field of the interp-st.

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
Bfr-p
Recognizer for valid Boolean Function Representation (bfr) objects.
Bounded-lit-fix
Bfr-list-fix
Aignet-lit->bfr
Variable-g-bindings
Bfr-listp$
(bfr-listp$ x bfrstate) recognizes lists where every element satisfies bfr-p.
Bfrstate>=
Bfr-listp-witness
Fgl-object-bindings-bfrlist
Bfr-set-var
Set the nth BFR variable to some value in an AIG/BDD environment.
Bfr-negate
Bfr-fix
Fgl-bfr-object-bindings-p
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