• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
      • Theories
      • Rule-classes
      • Proof-builder
      • Hons-and-memoization
      • Events
      • History
      • Parallelism
      • Programming
      • Start-here
      • Real
      • Debugging
      • Miscellaneous
      • Output-controls
        • With-output
        • Summary
        • Set-gag-mode
        • Set-inhibit-output-lst
        • Goal-spec
        • Pso
        • Checkpoint-list
        • Finalize-event-user
        • Set-inhibit-er
        • Set-inhibit-warnings
        • Get-event-data
        • Set-inhibited-summary-types
        • Set-print-clause-ids
        • Checkpoint-list-pretty
        • Set-let*-abstractionp
        • Initialize-event-user
        • Gag-mode
        • Set-raw-warning-format
        • Psof
        • Toggle-inhibit-warning
        • Toggle-inhibit-er
        • Set-raw-proof-format
        • Show-checkpoint-list
        • Wof
        • Warnings
          • Patbind-wmv
          • Patbind-wtmv
          • Psog
          • Checkpoint-info-list
          • Pso!
          • Toggle-inhibit-warning!
          • Set-duplicate-keys-action!
          • Toggle-inhibit-er!
          • Set-inhibit-warnings!
          • Set-inhibit-er!
        • Macros
        • Interfacing-tools
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Testing-utilities
      • Math
    • Warnings

    Patbind-wtmv

    B* binder to automatically cons together returned warningtrees

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

    Macro: patbind-wtmv

    (defmacro
     patbind-wtmv
     (args acl2::forms acl2::rest-expr)
     (b*
      (((mv ctx args)
        (b* ((acl2::mem (member :ctx args)))
            (if acl2::mem
                (mv (cadr acl2::mem)
                    (append (take (- (len args) (len acl2::mem))
                                  args)
                            (cddr acl2::mem)))
                (mv nil args)))))
      (cons
       'b*
       (cons
        (cons
         (if (equal args '(warnings))
             (cons '__tmp__warnings acl2::forms)
             (cons (cons 'mv
                         (subst '__tmp__warnings 'warnings args))
                   acl2::forms))
         (cons
          (cons
              'warnings
              (cons (cons 'acl2::vl-warningtree-cons
                          (cons (if ctx
                                    (cons 'vl-warningtree-context
                                          (cons ctx '(__tmp__warnings)))
                                    '__tmp__warnings)
                                '(warnings)))
                    'nil))
          'nil))
        (cons acl2::rest-expr 'nil)))))