• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
      • Std/lists
      • Std/alists
      • Obags
      • Std/util
        • Defprojection
        • Deflist
        • Defaggregate
        • Define
        • Defmapping
        • Defenum
        • Add-io-pairs
        • Defalist
        • Defmapappend
        • Returns-specifiers
        • Defarbrec
        • Defines
        • Define-sk
        • Error-value-tuples
        • Defmax-nat
        • Defmin-int
          • Defmin-int-implementation
            • Defmin-int-fn
            • Defmin-int-macro-definition
            • Defmin-int-input-processing
              • Defmin-int-process-inputs
              • Defmin-int-event-generation
          • Deftutorial
          • Extended-formals
          • Defrule
          • Defval
          • Defsurj
          • Defiso
          • Defconstrained-recognizer
          • Deffixer
          • Defmvtypes
          • Defconsts
          • Defthm-unsigned-byte-p
          • Support
          • Defthm-signed-byte-p
          • Defthm-natp
          • Defund-sk
          • Defmacro+
          • Defsum
          • Defthm-commutative
          • Definj
          • Defirrelevant
          • Defredundant
        • Std/strings
        • Std/osets
        • Std/io
        • Std/basic
        • Std/system
        • Std/typed-lists
        • Std/bitsets
        • Std/testing
        • Std/typed-alists
        • Std/stobjs
      • Community
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Defmin-int-input-processing

    Defmin-int-process-inputs

    Process all the inputs.

    Signature
    (defmin-int-process-inputs f y x1...xn 
                               body guard verify-guards ctx state) 
     
      → 
    (mv erp nothing state)
    Returns
    nothing — Type (null nothing).

    We just check that the inputs have the right types. We do not check the body and guard inputs, since those are untranslated term, for which we do not quite have a ``type'' readily available.

    Definitions and Theorems

    Function: defmin-int-process-inputs

    (defun defmin-int-process-inputs
           (f y x1...xn
              body guard verify-guards ctx state)
     (declare (xargs :stobjs (state)))
     (declare (ignore body guard))
     (declare (xargs :guard t))
     (let ((__function__ 'defmin-int-process-inputs))
      (declare (ignorable __function__))
      (b*
       (((er &)
         (ensure-value-is-symbol$ f "The first input" t nil))
        ((er &)
         (ensure-value-is-symbol$ y "The second input" t nil))
        ((er &)
         (ensure-value-is-symbol-list$ x1...xn "The third input" t nil))
        ((er &)
         (ensure-value-is-boolean$ verify-guards
                                   "The :VERIFY-GUARDS input" t nil)))
       (value nil))))

    Theorem: null-of-defmin-int-process-inputs.nothing

    (defthm null-of-defmin-int-process-inputs.nothing
     (b*
      (((mv ?erp ?nothing ?state)
        (defmin-int-process-inputs f y x1...xn
                                   body guard verify-guards ctx state)))
      (null nothing))
     :rule-classes :rewrite)