• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
      • B*
        • B*-binders
          • ACL2::patbind-ret
          • ACL2::patbind-stobj-get
          • Patbind-match
          • Patbind-when
          • Patbind-assocs
          • Patbind-the
          • Patbind-nths*
          • Patbind-er
          • Patbind-nths
          • Patbind-faig
          • Patbind-fun
          • Patbind-run-when
          • Patbind-pattern
          • Patbind-mv
          • Patbind-list*
          • Patbind-list
          • Patbind-cmp
          • Patbind-with-stolen
          • Patbind-with-fast
          • Patbind-unless-casematch
          • Patbind-cons
          • Patbind-access
          • Patbind-extract-keyword-args
            • Patbind-run-unless
            • Patbind-free-on-exit
            • Patbind-unless
            • Patbind-local-stobjs
            • Patbind-if
            • Patbind-getargs
            • Patbind-run-if
            • Patbind-state-global
            • Patbind-vl-read-zip-header-ret
            • Patbind-test-glmc-interp-nonhyps-ret
            • Patbind-test-glmc-interp-hyps-ret
            • Patbind-glmc-generic-interp-nonhyps-ret
            • Patbind-glmc-generic-interp-hyps-ret
          • Def-b*-binder
        • Defunc
        • Fty
        • Std/util
        • Apt
        • Defdata
        • Defrstobj
        • Seq
        • Match-tree
        • Defrstobj
        • With-supporters
        • Def-partial-measure
        • Template-subst
        • Soft
        • Defthm-domain
        • Event-macros
        • Def-universal-equiv
        • Def-saved-obligs
        • With-supporters-after
        • Definec
        • Sig
        • Outer-local
        • Data-structures
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Testing-utilities
      • Math
    • B*-binders

    Patbind-extract-keyword-args

    b* binder for getargs on a keyword alist.

    Usage:

    (b* (((extract-keyword-args
            :other-args other-args-var
            :allowed-keys allowed-keys-term
            :kwd-alist kwd-alist-var
            :defaults default-kwd-alist
            :ctx context
            :lazyp lazyp
             a
            (b b-default-term)
            (c c-default-term cp)
            d)
          args))
      form)

    is equivalent to

    (b* (((mv kwd-alist-var other-args-var)
          (extract-keywords context
               (append '(:a :b :c :d) allowed-keys-term) ;; allowed keys
                args nil))
         ((getargs :lazyp lazyp
             a
            (b b-default-term)
            (c c-default-term cp)
            d)
          (append kwd-alist-var default-kwd-alist)))
      form)