• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
        • Simplify-defun
        • Isodata
          • Isodata-implementation
            • Isodata-event-generation
            • 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

Isodata-implementation

Implementation of isodata.

The implementation functions have arguments and results consistently named as follows (unless otherwise stated, explicitly or implicitly, in the functions):

  • state is the ACL2 state.
  • wrld is the ACL2 world.
  • ctx is the context used for errors.
  • old, isomaps, predicate, undefined, new-name, new-enable, old-to-new-name, old-to-new-enable, new-to-old-name, new-to-old-enable, newp-of-new-name, newp-of-new-enable, verify-guards, untranslate, hints, print, and show-only are the homonymous inputs to isodata, before being validated. These formal parameters have no types because they may be any values.
  • old$, predicate$, undefined$, new-enable$, old-to-new-enable$, new-to-old-enable$, newp-of-new-enable$, verify-guards$, untranslate$, hints$, print$, and show-only$ are the result of processing the homonymous inputs (without the $). Some are identical to the corresponding inputs, but they have types implied by their successful validation, performed when they are processed.
  • new$ is the result of processing new-name.
  • old-to-new$ is the result of processing old-to-new-name.
  • new-to-old$ is the result of processing new-to-old-name.
  • newp-of-new$ is the result of processing newp-of-new-name.
  • m is the number of results of old.
  • arg-isomaps is an alist from formal arguments of old to isomorphic mapping records that specify how the associated formal arguments must be transformed. There are never duplicate keys. When input processing is complete, the keys are exactly all the formal arguments of old, in order. arg-isomaps results from processing isomaps.
  • res-isomaps is an alist from positive integers from 1 to m to isomorphic mapping records that specify how the result with the associated (1-based) indices must be transformed. There are never duplicate keys. When input processing is complete: if some results are transformed, the keys are exactly all the integers from 1 to m, in order; if no results are transformed, the alist is nil. res-isomaps results from processing isomaps.
  • appcond-thm-names is an alist from the applicability condition keywords to the corresponding theorem names.
  • old-fn-unnorm-name is the name of the theorem that installs the non-normalized definition of the old function.
  • new-fn-unnorm-name is the name of the theorem that installs the non-normalized definition of the new function.

Implementation functions' arguments and results that are not listed above are described in, or clear from, those functions' documentation.

Subtopics

Isodata-event-generation
Event generation performed by isodata.
Isodata-fn
Check redundancy, process the inputs, and generate the event to submit.
Isodata-input-processing
Input processing performed by isodata.
Isodata-macro-definition
Definition of the isodata macro.