• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
      • B*
      • Defunc
      • Fty
      • Apt
        • Simplify-defun
        • Isodata
        • Tailrec
        • Schemalg
        • Restrict
        • Expdata
        • Casesplit
        • Simplify-term
        • Simplify-defun-sk
        • Parteval
        • Solve
        • Wrap-output
        • Propagate-iso
        • Simplify
        • Finite-difference
        • Drop-irrelevant-params
        • Copy-function
        • Lift-iso
        • Rename-params
        • Utilities
        • Simplify-term-programmatic
        • Simplify-defun-sk-programmatic
        • Simplify-defun-programmatic
        • Simplify-defun+
        • Common-options
          • Untranslate-specifier
          • Print-specifier
          • Hints-specifier
            • Ensure-is-hints-specifier
            • Canonical-hints-specifier-p
            • Canonicalize-hints-specifier
              • Hints-specifier-p
          • Common-concepts
        • Std/util
        • 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
      • Math
      • Testing-utilities
    • Hints-specifier

    Canonicalize-hints-specifier

    Turn a hints specifier into an equivalent canonical one.

    Signature
    (canonicalize-hints-specifier x legal-kwds) → cx
    Returns
    cx — Type (canonical-hints-specifier-p cx legal-kwds), given the guard.

    If the hints specifier is already canonical, it is left unchanged. Otherwise, the abbreviation is “expanded”.

    Definitions and Theorems

    Function: canonicalize-hints-specifier

    (defun canonicalize-hints-specifier (x legal-kwds)
      (declare (xargs :guard (and (keyword-listp legal-kwds)
                                  (no-duplicatesp-eq legal-kwds)
                                  (hints-specifier-p x legal-kwds))))
      (let ((__function__ 'canonicalize-hints-specifier))
        (declare (ignorable __function__))
        (cond ((canonical-hints-specifier-p x legal-kwds)
               x)
              (t (acl2::make-keyword-value-list-from-keys-and-value
                      legal-kwds x)))))

    Theorem: return-type-of-canonicalize-hints-specifier

    (defthm return-type-of-canonicalize-hints-specifier
     (implies
      (and
         (keyword-listp legal-kwds)
         ((lambda (acl2::x)
            (return-last
                 'acl2::mbe1-raw
                 (acl2::no-duplicatesp-eq-exec acl2::x)
                 (return-last
                      'progn
                      (acl2::no-duplicatesp-eq-exec$guard-check acl2::x)
                      (no-duplicatesp-equal acl2::x))))
          legal-kwds)
         (hints-specifier-p x legal-kwds))
      (b* ((cx (canonicalize-hints-specifier x legal-kwds)))
        (canonical-hints-specifier-p cx legal-kwds)))
     :rule-classes :rewrite)