• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
      • Theories
      • Rule-classes
      • Proof-builder
      • Recursion-and-induction
      • Hons-and-memoization
        • Memoize
          • Memoize-partial
          • Protect-memoize-statistics
          • Profile-all
          • Profile-ACL2
          • Memoized-prover-fns
          • Unmemoize
          • Verify-guard-implication
          • Memsum
          • Set-bad-lisp-consp-memoize
          • Memoize-summary
          • Save-and-clear-memoization-settings
          • Never-memoize
            • Clear-memoize-tables
            • Clear-memoize-statistics
            • Clear-memoize-table
            • Restore-memoization-settings
          • Fast-alists
          • Hons
          • Set-max-mem
          • Hons-enabled
          • Unmemoize
          • Number-subtrees
        • Events
        • Parallelism
        • History
        • Programming
        • Operational-semantics
        • Real
        • Start-here
        • Debugging
        • Miscellaneous
        • Output-controls
        • Macros
        • Interfacing-tools
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Memoize

    Never-memoize

    Mark a function as unsafe to memoize.

    Logically, this function just returns nil. But execution of (never-memoize fn) records that fn must never be memoized, so that any attempt to memoize fn will fail.

    Any function can be marked as unsafe to memoize; in fact, fn need not even be defined at the time it is marked.

    This is useful for prohibiting the memoization of functions that are known to involve destructive functions like nreverse.