• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
      • Theories
      • Rule-classes
      • Proof-builder
      • Recursion-and-induction
      • Hons-and-memoization
      • Events
        • Defun
        • Verify-guards
        • Table
        • Mutual-recursion
        • Memoize
        • Make-event
        • Include-book
        • Encapsulate
        • Defun-sk
          • Define-sk
          • Quantifier-tutorial
          • Defun-sk-queries
            • Defun-sk-matrix
            • Defun-sk-p
            • Defun-sk-namep
            • Defun-sk-body
              • Defun-sk-imatrix
              • Defun-sk-definition-name
              • Defun-sk-witness
              • Defun-sk-classicalp
              • Defun-sk-rewrite-kind
              • Defun-sk-rewrite-name
              • Defun-sk-rewrite-kind-p
              • Defun-sk-quantifier
              • Defun-sk-options
              • Defun-sk-bound-vars
              • Defun-sk-strengthen
              • Defun-sk-quantifier-p
            • Quantifiers
            • Defun-sk-example
            • Defund-sk
            • Forall
            • Def::un-sk
            • Equiv
            • Exists
            • Congruence
          • Defttag
          • Defstobj
          • Defpkg
          • Defattach
          • Defabsstobj
          • Defchoose
          • Progn
          • Verify-termination
          • Redundant-events
          • Defmacro
          • Defconst
          • Skip-proofs
          • In-theory
          • Embedded-event-form
          • Value-triple
          • Comp
          • Local
          • Defthm
          • Progn!
          • Defevaluator
          • Theory-invariant
          • Assert-event
          • Defun-inline
          • Project-dir-alist
          • Partial-encapsulate
          • Define-trusted-clause-processor
          • Defproxy
          • Defexec
          • Defun-nx
          • Defthmg
          • Defpun
          • Defabbrev
          • Set-table-guard
          • Name
          • Defrec
          • Add-custom-keyword-hint
          • Regenerate-tau-database
          • Defcong
          • Deftheory
          • Defaxiom
          • Deftheory-static
          • Defund
          • Evisc-table
          • Verify-guards+
          • Logical-name
          • Profile
          • Defequiv
          • Defmacro-untouchable
          • Add-global-stobj
          • Defthmr
          • Defstub
          • Defrefinement
          • Deflabel
          • In-arithmetic-theory
          • Unmemoize
          • Defabsstobj-missing-events
          • Defthmd
          • Fake-event
          • Set-body
          • Defun-notinline
          • Functions-after
          • Macros-after
          • Dump-events
          • Defund-nx
          • Defun$
          • Remove-global-stobj
          • Remove-custom-keyword-hint
          • Dft
          • Defthy
          • Defund-notinline
          • Defnd
          • Defn
          • Defund-inline
          • Defmacro-last
        • Parallelism
        • History
        • Programming
        • Operational-semantics
        • Real
        • Start-here
        • Debugging
        • Miscellaneous
        • Output-controls
        • Macros
        • Interfacing-tools
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Defun-sk-queries

    Defun-sk-body

    Retrieve the body of a function introduced via defun-sk.

    Signature
    (defun-sk-body fn wrld) → body
    Arguments
    fn — Guard (defun-sk-namep fn wrld).
    wrld — Guard (plist-worldp wrld).
    Returns
    body — A pseudo-event-formp.

    This is the sub-form (forall ...) or (exists ...) of the defun-sk form. Thus, the terms in this sub-from are untranslated.

    In the defun-sk form, the body sub-form is obtained by first removing the keyed options (if any) and then taking the last element of the resulting list.

    To retrieve the quantifier, bound variable, and matrix of this body, use defun-sk-quantifier, defun-sk-bound-vars, defun-sk-matrix, and defun-sk-imatrix.

    Definitions and Theorems

    Function: defun-sk-body

    (defun defun-sk-body (fn wrld)
     (declare (xargs :guard (and (plist-worldp wrld)
                                 (defun-sk-namep fn wrld))))
     (let ((__function__ 'defun-sk-body))
      (declare (ignorable __function__))
      (b*
       ((form (defun-sk-p fn wrld))
        ((mv erp form-without-keyed-options &)
         (partition-rest-and-keyword-args form *defun-sk-keywords*))
        ((when erp)
         (raise
          "Internal error: ~
                               the DEFUN-SK form ~x0 of ~x1 is malformed."
          form fn)))
       (car (last form-without-keyed-options)))))