• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
          • Defbyte
          • Defresult
          • Fold
            • Deffold-reduce
            • Deffold-map
            • Defmake-self
              • Defmake-self-implementation
                • Defmake-self-event-generation
                • Defmake-self-process-inputs-and-gen-everything
                • Defmake-self-fn
                • Defmake-self-input-processing
                • Defmake-self-macro-definition
          • Specific-types
          • Defsubtype
          • Defset
          • Defflatsum
          • Deflist-of-len
          • Pos-list
          • Defomap
          • Defbytelist
          • Defbyte-standard-instances
          • Deffixtype-alias
          • Defbytelist-standard-instances
          • Defunit
          • Byte-list
          • Database
          • Byte
          • String-option
          • Pos-option
          • Nibble
          • Nat-option
          • Ubyte32-option
          • Byte-list20
          • Byte-list32
          • Byte-list64
          • Pseudo-event-form
          • Natoption/natoptionlist
          • Nati
          • Character-list
          • Nat/natlist
          • Maybe-string
          • Nibble-list
          • Natoption/natoptionlist-result
          • Nat/natlist-result
          • Nat-option-list-result
          • Set
          • String-result
          • String-list-result
          • Nat-result
          • Nat-option-result
          • Nat-list-result
          • Maybe-string-result
          • Integer-result
          • Character-result
          • Character-list-result
          • Boolean-result
          • Map
          • Dependencies
          • Bag
          • Pos-set
          • Hex-digit-char-list
          • Dec-digit-char-list
          • Pseudo-event-form-list
          • Nat-option-list
          • Character-any-map
          • Any-nat-map
          • Symbol-set
          • String-set
          • Nat-set
          • Character-set
          • Oct-digit-char-list
          • Bin-digit-char-list
          • Bit-list
        • Isar
        • Kestrel-utilities
        • Set
        • C
        • Soft
        • Bv
        • Imp-language
        • Ethereum
        • Event-macros
        • Java
        • Riscv
        • Bitcoin
        • Zcash
        • Yul
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Axe
        • Lists-light
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Defmake-self

Defmake-self-implementation

Implementation of defmake-self.

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

  • type is the homonymous input to the event macro.
  • print is the homonymous input to the event macro.
  • parents is the homonymous input to the event macro.
  • short is the homonymous input to the event macro.
  • long is the homonymous input to the event macro.
  • type is either the name of an FTY type, or the name of a type clique.
  • fty-table is the alist of the table of all (fix)types (except some built-in ones, such as nat), i.e. the table flextypes-table. The format is defined in [books]/centaur/fty/database.lisp. It has one entry for each mutually recursive clique of types, with singly recursive or non-recursive types being in singleton cliques.
  • make-self-table is the alist of the table of registered ``make-self'' functions. A type name maps to the corresponding ``make-self'' function. A non-singleton type clique name maps to nil to indicate that ``make-self'' functions have been generated and registered for all functions in the clique.

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

Subtopics

Defmake-self-event-generation
Event generation performed by defmake-self.
Defmake-self-process-inputs-and-gen-everything
Process the inputs and generate the events.
Defmake-self-fn
Event expansion of defmake-self.
Defmake-self-input-processing
Input processing performed by defmake-self.
Defmake-self-macro-definition
Definition of defmake-self.