• 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
  • Std/system/function-queries
  • Defun-sk

Defun-sk-queries

Utilities to query defun-sk functions.

defun-sk mimics functions with (top-level) quantifiers in the quantifier-free logic of ACL2, by conservatively axiomatizing an associated witness function and by defining the defun-sk function in terms of the witness function (either via an actual definition, or via a definition rule if :constrain is not nil). It also generates a rewrite rule to support reasoning about the function with the quantifier.

These defun-sk query utilities provide facilities to check whether a function has been introduced via defun-sk, and, if so, to retrieve its defun-sk-specific constituents. Constituents of the function that are not defun-sk-specific (formal arguments, guard, etc.) can be retrieved with more general utilities. Since defun-sk extends the pe-table with the defun-sk form, these utilities consult the pe-table to determine whether a function has been introduced by defun-sk, and if that is the case, the defun-sk-specific components are retrieved based on the expected structure of the defun-sk form and of the forms it generates (encapsulate, defchoose, etc.). Thus, if the pe-table is extended with a form starting with defun-sk without using defun-sk (by directly calling extend-pe-table), these utilities, as currently implemented, can be fooled and return meaningless results. (These utilities could be extended to defensively check that the form and its expansion have the right structure, if that becomes important.)

Subtopics

Defun-sk-matrix
Retrieve the matrix of a function introduced via defun-sk, in untranslated form.
Defun-sk-p
Check if a named function has been introduced via defun-sk, returning the function's defun-sk form if the check succeeds.
Defun-sk-namep
Recognize symbols that name functions introduced via defun-sk.
Defun-sk-body
Retrieve the body of a function introduced via defun-sk.
Defun-sk-imatrix
Retrieve the matrix of a function introduced via defun-sk, in untranslated form.
Defun-sk-definition-name
Retrieve the name of the definition rule of a function introduced via defun-sk.
Defun-sk-witness
Retrieve the name of the witness of a function introduced via defun-sk.
Defun-sk-classicalp
Retrieve the value of the :classicalp option of a function introduced via defun-sk.
Defun-sk-rewrite-kind
Retrieve the kind of the rewrite rule of a function introduced via defun-sk.
Defun-sk-rewrite-name
Retrieve the name of the rewrite rule of a function introduced via defun-sk.
Defun-sk-rewrite-kind-p
Kinds of rewrite rules associated to defun-sk functions with the universal quantifier.
Defun-sk-quantifier
Retrieve the quantifier of a function introduced via defun-sk.
Defun-sk-options
Retrieve the keyed options of a function introduced via defun-sk.
Defun-sk-bound-vars
Retrieve the bound variables of a function introduced via defun-sk.
Defun-sk-strengthen
Retrieve the value of the :strengthen option of a function introduced via defun-sk.
Defun-sk-quantifier-p
Existential and universal quantifiers.