• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
        • Simplify-defun
        • Isodata
          • Isodata-implementation
            • Isodata-event-generation
              • Isodata-gen-everything
              • Isodata-gen-thm-instances-to-terms-back
              • Isodata-gen-new-fn-body-nonpred
              • Isodata-gen-new-fn
              • Isodata-gen-new-fn-verify-guards
              • Isodata-gen-new-fn-verify-guards-hints-nonpred-rec-1res/mres
              • Isodata-gen-new-to-list-of-mv-nth
              • Isodata-gen-new-to-old-lemma
              • Isodata-gen-forth-image-instances-to-terms-back
              • Isodata-gen-forth-guard-instances-to-terms-back
              • Isodata-gen-back-of-forth-instances-to-terms-back
              • Isodata-gen-new-fn-verify-guards-hints-nonpred-nonrec-1res/mres
              • Isodata-gen-defiso
                • Isodata-gen-new-to-old-lemma-hints
                • Isodata-gen-old-to-new-lemma
                • Isodata-gen-new-to-old-thm-hints-1res
                • Isodata-gen-lemma-instances-var-to-new-forth-rec-call-args-back
                • Isodata-gen-new-to-old-thm
                • Isodata-gen-lemma-instances-x1...xn-to-forth-rec-call-args-back
                • Isodata-gen-thm-instances-to-x1...xn
                • Isodata-gen-old-to-new-thm
                • Isodata-gen-new-fn-verify-guards-hints-pred-rec
                • Isodata-gen-all-back-guard-instances-to-mv-nth
                • Isodata-gen-newp-of-new-thm-hints
                • Isodata-gen-lemma-instances-x1...xn-to-rec-call-args-back
                • Isodata-gen-result-vars
                • Isodata-gen-old-to-new-lemma-hints
                • Isodata-gen-newp-of-new-thm
                • Isodata-gen-new-to-old-thm-hints-0res
                • Isodata-gen-new-to-old-thm-hints
                • Isodata-gen-new-fn-verify-guards-hints-nonpred-rec-0res
                • Isodata-gen-lemma-instances-var-to-rec-calls-back
                • Isodata-gen-new-fn-body-pred
                • Isodata-gen-all-back-of-forth-instances-to-mv-nth
                • Isodata-gen-new-fn-verify-guards-hints-nonpred
                • Isodata-gen-new-fn-verify-guards-hints
                • Isodata-gen-all-back-of-forth-instances-to-terms-back
                • Isodata-gen-old-to-new-thm-hints-1res
                • Isodata-gen-all-forth-image-instances-to-terms-back
                • Isodata-gen-all-forth-guard-instances-to-terms-back
                • Isodata-gen-old-to-new-thm-hints
                • Isodata-gen-old-to-list-of-mv-nth
                • Isodata-gen-new-fn-verify-guards-hints-pred-nonrec
                • Isodata-xform-rec-calls
                • Isodata-gen-appconds
                • Isodata-gen-forth-image-instances-to-mv-nth
                • Isodata-gen-forth-guard-instances-to-mv-nth
                • Isodata-gen-back-of-forth-instances-to-mv-nth
                • Isodata-gen-back-guard-instances-to-mv-nth
                • Isodata-gen-old-to-new-thm-formula
                • Isodata-gen-new-fn-verify-guards-hints-nonpred-nonrec-0res
                • Isodata-gen-lemma-instance-x1...xn-to-forth-of-x1...xn
                • Isodata-gen-lemma-instance-x1...xn-to-back-of-x1...xn
                • Isodata-gen-forth-image-instances-to-x1...xn
                • Isodata-gen-forth-image-instances-to-terms-back-aux
                • Isodata-gen-forth-guard-instances-to-x1...xn
                • Isodata-gen-forth-guard-instances-to-terms-back-aux
                • Isodata-gen-back-of-forth-instances-to-x1...xn
                • Isodata-gen-back-of-forth-instances-to-terms-back-aux
                • Isodata-gen-old-to-new-lemma-formula
                • Isodata-gen-newp-of-new-thm-formula
                • Isodata-gen-newp-guard-instances-to-x1...xn
                • Isodata-gen-new-to-old-lemma-formula
                • Isodata-gen-fn-of-terms
                • Isodata-gen-back-image-instances-to-x1...xn
                • Isodata-gen-back-guard-instances-to-x1...xn
                • Isodata-gen-oldp-of-rec-call-args-under-contexts
                • Isodata-gen-new-to-old-thm-formula
                • Isodata-gen-new-fn-termination-hints
                • Isodata-gen-new-fn-body
                • Isodata-gen-lemma-instance-x1...xn-to-fn-of-x1...xn
                • Isodata-gen-old-to-new-thm-hints-0res
                • Isodata-gen-new-fn-verify-guards-hints-pred
                • Isodata-gen-subst-x1...xn-with-back-of-x1...xn
                • Isodata-gen-oldp-of-terms
                • Isodata-gen-newp-of-terms
                • Isodata-gen-forth-of-terms
                • Isodata-gen-defisos
                • Isodata-gen-back-of-terms
                • Isodata-gen-old-to-new-thm-hints-mres
                • Isodata-gen-new-fn-guard
                • Isodata-gen-new-to-old-thm-hints-mres
                • Isodata-gen-result-vars-aux
                • Isodata-gen-new-fn-measure
                • Isodata-formal-of-newp
                • Isodata-formal-of-forth
                • Isodata-formal-of-back
                • Isodata-formal-of-unary
              • Isodata-fn
              • Isodata-input-processing
              • Isodata-macro-definition
          • Tailrec
          • Schemalg
          • Restrict
          • Expdata
          • Casesplit
          • Simplify-term
          • Simplify-defun-sk
          • Parteval
          • Solve
          • Wrap-output
          • Propagate-iso
          • Simplify
          • Finite-difference
          • Drop-irrelevant-params
          • Copy-function
          • Lift-iso
          • Rename-params
          • Utilities
          • Simplify-term-programmatic
          • Simplify-defun-sk-programmatic
          • Simplify-defun-programmatic
          • Simplify-defun+
          • Common-options
          • Common-concepts
        • Zfc
        • Acre
        • Milawa
        • Smtlink
        • Abnf
        • Vwsim
        • Isar
        • Wp-gen
        • Dimacs-reader
        • Pfcs
        • Legacy-defrstobj
        • Proof-checker-array
        • Soft
        • C
        • Farray
        • Rp-rewriter
        • Instant-runoff-voting
        • Imp-language
        • Sidekick
        • Leftist-trees
        • Java
        • Taspi
        • Bitcoin
        • Riscv
        • Des
        • Ethereum
        • X86isa
        • Sha-2
        • Yul
        • Zcash
        • Proof-checker-itp13
        • Regex
        • ACL2-programming-language
        • Json
        • Jfkr
        • Equational
        • Cryptography
        • Poseidon
        • Where-do-i-place-my-book
        • Axe
        • Bigmems
        • Builtins
        • Execloader
        • Aleo
        • Solidity
        • Paco
        • Concurrent-programs
        • Bls12-377-curves
      • Debugging
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Isodata-event-generation

    Isodata-gen-defiso

    Generate a local defiso.

    Signature
    (isodata-gen-defiso isomap verify-guards$ print$) → event
    Arguments
    isomap — Guard (isodata-isomapp isomap).
    verify-guards$ — Guard (booleanp verify-guards$).
    print$ — Guard (evmac-input-print-p print$).
    Returns
    event — Type (pseudo-event-formp event).

    When the iso input is not a name, isodata internally generates and uses a defiso, so that the rest of the generated events can uniformly rely on a defiso that has established the isomorphic mapping.

    This event is local to the encapsulate generated by isodata.

    Since the defiso is local, we normally do not want to print its result or info output. But we want to print errors. So we pass :error as the :print input. However, if isodata's :print input is :all, the we use :all for defiso's :print input as well.

    This is also used for the identity isomorphic mapping, which is also locally generated.

    Definitions and Theorems

    Function: isodata-gen-defiso

    (defun isodata-gen-defiso (isomap verify-guards$ print$)
     (declare (xargs :guard (and (isodata-isomapp isomap)
                                 (booleanp verify-guards$)
                                 (evmac-input-print-p print$))))
     (declare (xargs :guard (isodata-isomap->localp isomap)))
     (let ((__function__ 'isodata-gen-defiso))
      (declare (ignorable __function__))
      (b* (((isodata-isomap isomap) isomap)
           (name isomap.isoname)
           (doma isomap.oldp)
           (domb isomap.newp)
           (alpha isomap.forth)
           (beta isomap.back)
           (unconditional nil)
           (guard-thms verify-guards$)
           (nonguard-thm-names
                (list :alpha-image isomap.forth-image
                      :beta-image isomap.back-image
                      :beta-of-alpha isomap.back-of-forth
                      :alpha-of-beta isomap.forth-of-back
                      :alpha-injective isomap.forth-injective
                      :beta-injective isomap.back-injective))
           (guard-thm-names? (and guard-thms
                                  (list :doma-guard isomap.oldp-guard
                                        :domb-guard isomap.newp-guard
                                        :alpha-guard isomap.forth-guard
                                        :beta-guard isomap.back-guard)))
           (thm-names (append nonguard-thm-names guard-thm-names?))
           (hints isomap.hints)
           (print (if (eq print$ :all) :all :error)))
       (cons
        'local
        (cons
         (cons
          'defiso
          (cons
           name
           (cons
            doma
            (cons
             domb
             (cons
              alpha
              (cons
               beta
               (cons
                ':unconditional
                (cons
                 unconditional
                 (cons
                  ':guard-thms
                  (cons
                   guard-thms
                   (cons
                    ':thm-names
                    (cons
                      thm-names
                      (cons ':hints
                            (cons hints
                                  (cons ':print
                                        (cons print 'nil))))))))))))))))
         'nil)))))

    Theorem: pseudo-event-formp-of-isodata-gen-defiso

    (defthm pseudo-event-formp-of-isodata-gen-defiso
      (b* ((event (isodata-gen-defiso isomap verify-guards$ print$)))
        (pseudo-event-formp event))
      :rule-classes :rewrite)