• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
      • Theories
      • Rule-classes
      • Proof-builder
      • Recursion-and-induction
      • Hons-and-memoization
      • Events
      • Parallelism
      • History
      • Programming
      • Operational-semantics
      • Real
      • Start-here
      • Debugging
      • Miscellaneous
        • Term
        • Ld
        • Hints
        • Type-set
        • Ordinals
        • Clause
        • ACL2-customization
        • With-prover-step-limit
        • Set-prover-step-limit
        • With-prover-time-limit
        • Local-incompatibility
        • Set-case-split-limitations
        • Subversive-recursions
        • Specious-simplification
        • Defsum
        • Gcl
        • Oracle-timelimit
        • Thm
        • Defopener
        • Case-split-limitations
        • Set-gc-strategy
        • Default-defun-mode
        • Top-level
        • Reader
        • Ttags-seen
        • Adviser
        • Ttree
        • Abort-soft
          • Defsums
          • Gc$
          • With-timeout
          • Coi-debug::fail
          • Expander
          • Gc-strategy
          • Coi-debug::assert
          • Sin-cos
          • Def::doc
          • Syntax
          • Subversive-inductions
        • Output-controls
        • Macros
        • Interfacing-tools
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Miscellaneous

    Abort-soft

    Control how interrupts are handled in proofs

    ACL2 arranges by default that when a proof is interrupted (with Control-C), a ``soft'' abort occurs in the following sense: the message below is printed and then the proof attempt continues temporarily before ultimately failing (usually very soon thereafter).

    ***********************************************
    Note:  interrupt signal
      Will attempt to exit the proof in progress;
      otherwise, the next interrupt will abort the proof.
      For an immediate abort see :DOC abort-soft.
    ***********************************************

    This default behavior supports proper operation of the utility, redo-flat, when a proof is interrupted. It also supports more complete summaries than would be obtained with an immediate abort. If you nevertheless want proofs to abort immediately, you may evaluate the form (assign abort-soft nil). To restore the default behavior, evaluate (assign abort-soft t).

    Remarks for system hackers.

    • An important effect of having evaluated (assign abort-soft nil) is that an interrupt will send you immediately back to the ACL2 read-eval-print loop, in contrast to the default behavior where the prover returns an error-triple whose error component is non-nil.
    • It may be preferable to bind state global abort-soft rather than to assign it globally. See the implementation of prove$ (specifically, the definition of prove$-fn in community-book books/tools/prove-dollar.lisp) for an example.