• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
      • Theories
      • Rule-classes
      • Proof-builder
      • Hons-and-memoization
      • Events
      • History
      • Parallelism
      • Programming
      • Start-here
      • Real
      • Debugging
      • Miscellaneous
      • Output-controls
      • Macros
        • Make-event
        • Defmacro
        • Untranslate-patterns
          • Add-untranslate-pattern
            • Optimize-untranslate-patterns
          • Tc
          • Macro-aliases-table
          • Macro-args
          • Defabbrev
          • User-defined-functions-table
          • Untranslate-for-execution
          • Trans
          • Add-macro-fn
          • Check-vars-not-free
          • Safe-mode
          • Macro-libraries
          • Defmacro-untouchable
          • Trans1
          • Set-duplicate-keys-action
          • Add-macro-alias
          • Magic-macroexpand
          • Defmacroq
          • Remove-macro-fn
          • Remove-macro-alias
          • Add-binop
          • Untrans-table
          • Trans!
          • Remove-binop
          • Tcp
          • Tca
        • Interfacing-tools
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Testing-utilities
      • Math
    • Untranslate-patterns

    Add-untranslate-pattern

    Add a new pattern to the untranslate patterns table.

    General Form:

    (add-untranslate-pattern target replacement)

    Examples:

    (add-untranslate-pattern-function '(1 2 3) *myconst*)
    (add-untranslate-pattern-function (f$ ?a ?b mystobj) (f a b))

    We add a new pattern to the untranslate patterns table. The target should be either a quoted constant (which must be fully expanded, it does not get evaluated), or an unquoted function call.

    The first example above changed proof output so that the constant '(1 2 3) is instead printed as *myconst*. The second example changes proof output so that for all x,y, (f$ x y mystobj) is printed as (f x y). Note that the printing of (f$ x y yourstobj) will not be altered.