• Top
    • Documentation
    • Books
    • Boolean-reasoning
      • Ipasir
      • Aignet
      • Aig
      • Satlink
      • Truth
      • Ubdds
      • Bdd
      • Faig
        • Faig-constructors
        • Faig-onoff-equiv
        • Faig-purebool-p
        • Faig-alist-equiv
        • Faig-equiv
        • Faig-eval
        • Faig-restrict
        • Faig-fix
        • Faig-partial-eval
        • Faig-compose
        • Faig-compose-alist
        • Patbind-faig
          • Faig-constants
        • Bed
        • 4v
      • Projects
      • Debugging
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • B*-binders
    • Faig

    Patbind-faig

    b* binder that binds two variables to the onset and offset, respectively, of the faig-fix of the given expression.

    This is a b* binder introduced with def-b*-binder.

    Macro: patbind-faig

    (defmacro patbind-faig (args forms rest-expr)
     (declare (xargs :guard (and (true-listp args)
                                 (equal (len args) 2)
                                 (true-listp forms)
                                 (equal (len forms) 1))))
     (cons
      'b*
      (cons
       (cons
        (cons
         (cons 'mv
               (cons (first args)
                     (cons (second args) 'nil)))
         (cons
          (cons
           'let
           (cons
              (cons (cons 'x
                          (cons (cons 'faig-fix (cons (car forms) 'nil))
                                'nil))
                    'nil)
              '((mv (car x) (cdr x)))))
          'nil))
        'nil)
       (cons rest-expr 'nil))))