• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • ACL2
      • Theories
      • Rule-classes
      • Proof-builder
      • Recursion-and-induction
      • Hons-and-memoization
      • Events
      • Parallelism
      • History
      • Programming
      • Operational-semantics
      • Real
      • Start-here
      • Debugging
      • Miscellaneous
      • Output-controls
      • Macros
        • Make-event
        • Defmacro
        • Untranslate-patterns
        • Tc
        • Trans*
        • Macro-aliases-table
        • Macro-args
        • Defabbrev
        • User-defined-functions-table
        • Trans
        • Untranslate-for-execution
        • Add-macro-fn
        • Check-vars-not-free
        • Safe-mode
        • Macro-libraries
          • B*
          • Defunc
          • Fty
            • Deftagsum
            • Defprod
            • Defflexsum
            • Defbitstruct
            • Deflist
            • Defalist
            • Defbyte
            • Deffixequiv
              • Deffixequiv-sk
                • Deffixequiv-sk-implementation
                  • Deffixequiv-sk-lemma-insts-arg
                  • Deffixequiv-sk-lemma-insts-args
                  • Deffixequiv-sk-hints
                  • Deffixequiv-sk-lemma-inst-subst
                  • Deffixequiv-sk-fn
                    • Deffixequiv-sk-macro-definition
                • Fixequiv-hook
                • Set-fixequiv-guard-override
              • Defresult
              • Deffixtype
              • Defoption
              • Fty-discipline
              • Fold
              • Fty-extensions
              • Defsubtype
              • Specific-types
              • Deftypes
              • Defset
              • Defflatsum
              • Deflist-of-len
              • Defbytelist
              • Defomap
              • Fty::basetypes
              • Defvisitors
              • Deffixtype-alias
              • Deffixequiv-sk
                • Deffixequiv-sk-implementation
                  • Deffixequiv-sk-lemma-insts-arg
                  • Deffixequiv-sk-lemma-insts-args
                  • Deffixequiv-sk-hints
                  • Deffixequiv-sk-lemma-inst-subst
                  • Deffixequiv-sk-fn
                    • Deffixequiv-sk-macro-definition
                • Defunit
                • Multicase
                • Deffixequiv-mutual
                • Fty::baselists
                • Def-enumcase
                • Defmap
              • Apt
              • 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
            • Trans1
            • Defmacro-untouchable
            • Set-duplicate-keys-action
            • Add-macro-alias
            • Magic-macroexpand
            • Defmacroq
            • Trans!
            • Remove-macro-fn
            • Remove-macro-alias
            • Add-binop
            • Untrans-table
            • Trans*-
            • Remove-binop
            • Tcp
            • Tca
          • Mailing-lists
          • Interfacing-tools
        • Macro-libraries
          • B*
          • Defunc
          • Fty
            • Deftagsum
            • Defprod
            • Defflexsum
            • Defbitstruct
            • Deflist
            • Defalist
            • Defbyte
            • Deffixequiv
              • Deffixequiv-sk
                • Deffixequiv-sk-implementation
                  • Deffixequiv-sk-lemma-insts-arg
                  • Deffixequiv-sk-lemma-insts-args
                  • Deffixequiv-sk-hints
                  • Deffixequiv-sk-lemma-inst-subst
                  • Deffixequiv-sk-fn
                    • Deffixequiv-sk-macro-definition
                • Fixequiv-hook
                • Set-fixequiv-guard-override
              • Defresult
              • Deffixtype
              • Defoption
              • Fty-discipline
              • Fold
              • Fty-extensions
              • Defsubtype
              • Specific-types
              • Deftypes
              • Defset
              • Defflatsum
              • Deflist-of-len
              • Defbytelist
              • Defomap
              • Fty::basetypes
              • Defvisitors
              • Deffixtype-alias
              • Deffixequiv-sk
                • Deffixequiv-sk-implementation
                  • Deffixequiv-sk-lemma-insts-arg
                  • Deffixequiv-sk-lemma-insts-args
                  • Deffixequiv-sk-hints
                  • Deffixequiv-sk-lemma-inst-subst
                  • Deffixequiv-sk-fn
                    • Deffixequiv-sk-macro-definition
                • Defunit
                • Multicase
                • Deffixequiv-mutual
                • Fty::baselists
                • Def-enumcase
                • Defmap
              • Apt
              • 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
            • Interfacing-tools
            • Hardware-verification
            • Software-verification
            • Math
            • Testing-utilities
          • Deffixequiv-sk-implementation

          Deffixequiv-sk-fn

          Process the inputs and generate the deffixequiv.

          Signature
          (deffixequiv-sk-fn fn args wrld) → event
          Arguments
          wrld — Guard (plist-worldp wrld).
          Returns
          event — A ACL2::maybe-pseudo-event-formp.

          Definitions and Theorems

          Function: deffixequiv-sk-fn

          (defun deffixequiv-sk-fn (fn args wrld)
           (declare (xargs :guard (plist-worldp wrld)))
           (let ((__function__ 'deffixequiv-sk-fn))
            (declare (ignorable __function__))
            (b*
             (((unless (acl2::defun-sk-namep fn wrld))
               (raise
                   "The first input, ~x0, must be a DEFUN-SK function symbol."
                   fn))
              (fn-rule (acl2::defun-sk-rewrite-name fn wrld))
              (fn-witness (acl2::defun-sk-witness fn wrld))
              (bvars (acl2::defun-sk-bound-vars fn wrld))
              ((unless (doublet-listp args))
               (raise "The :ARGS input, ~x0, must be a true list of doublets."
                      args))
              (args-alist (acl2::doublets-to-alist args))
              ((unless (acl2::symbol-symbol-alistp args-alist))
               (raise
                "The :ARGS input, ~x0, ~
                          must be a true list of doublets of symbols."
                args))
              (hints (deffixequiv-sk-hints fn fn-rule
                                           fn-witness bvars args-alist wrld)))
             (cons 'deffixequiv
                   (cons fn
                         (cons ':args
                               (cons args
                                     (cons ':hints (cons hints 'nil)))))))))