• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
      • Std/lists
      • Std/alists
      • Obags
      • Std/util
        • Defprojection
        • Deflist
        • Defaggregate
        • Define
        • Defmapping
          • Defsurj
          • Defiso
            • Defiso-implementation
              • Defiso-lookup
              • Defiso-macro-definition
            • Defmapping-implementation
            • Definj
          • Defenum
          • Add-io-pairs
          • Defalist
          • Defmapappend
          • Returns-specifiers
          • Defarbrec
          • Define-sk
          • Defines
          • Error-value-tuples
          • Defmax-nat
          • Defmin-int
          • Deftutorial
          • Extended-formals
          • Defrule
          • Defval
          • Defsurj
          • Defiso
            • Defiso-implementation
              • Defiso-lookup
              • Defiso-macro-definition
            • 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
        • Proof-automation
        • Macro-libraries
        • ACL2
        • Interfacing-tools
        • Hardware-verification
        • Software-verification
        • Math
        • Testing-utilities
      • Defiso-implementation

      Defiso-macro-definition

      Definition of the defiso macro.

      We call defmapping-fn, passing t as both :beta-of-alpha-thm and :alpha-of-beta-thm. Furthermore, we set the context to reference defiso.

      Macro: defiso

      (defmacro defiso (&whole call name doma domb
                               alpha beta &key (unconditional 'nil)
                               (guard-thms 't)
                               (thm-names 'nil)
                               (thm-enable 'nil)
                               (hints 'nil)
                               (print ':result)
                               (show-only 'nil))
       (cons
        'make-event-terse
        (cons
         (cons
          'defmapping-fn
          (cons
           (cons 'quote (cons name 'nil))
           (cons
            (cons 'quote (cons doma 'nil))
            (cons
             (cons 'quote (cons domb 'nil))
             (cons
              (cons 'quote (cons alpha 'nil))
              (cons
               (cons 'quote (cons beta 'nil))
               (cons
                't
                (cons
                 't
                 (cons
                  (cons 'quote (cons guard-thms 'nil))
                  (cons
                   (cons 'quote (cons unconditional 'nil))
                   (cons
                    (cons 'quote (cons thm-names 'nil))
                    (cons
                     (cons 'quote (cons thm-enable 'nil))
                     (cons
                      (cons 'quote (cons hints 'nil))
                      (cons
                       (cons 'quote (cons print 'nil))
                       (cons
                        (cons 'quote (cons show-only 'nil))
                        (cons
                         (cons 'quote (cons call 'nil))
                         (cons
                          (cons 'cons
                                (cons ''defiso
                                      (cons (cons 'quote (cons name 'nil))
                                            'nil)))
                          '(state))))))))))))))))))
         (cons ':suppress-errors
               (cons (not print) 'nil)))))