• 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
        • Defun
        • Declare
        • System-utilities
        • Stobj
          • Defstobj
          • Defabsstobj
            • Attach-stobj
            • Set-absstobj-debug
            • Defabsstobj-events
            • Illegal-state
            • Stobj-table
            • Preservation-thms
            • Nested-stobjs
            • Defrstobj
            • With-global-stobj
            • User-stobjs-modified-warnings
            • Stobj-example-1
            • Defrstobj
            • Stobj-example-3
            • Stobj-example-1-proofs
            • With-local-stobj
            • Stobj-example-1-defuns
            • Declare-stobjs
            • Trans-eval-and-stobjs
            • With-local-state
            • Stobj-example-2
            • Stobj-example-1-implementation
            • Add-global-stobj
            • Swap-stobjs
            • Resize-list
            • Nth-aliases-table
            • Def-stobj-frame
            • Trans-eval-and-locally-bound-stobjs
            • Std/stobjs
            • Count-keys
            • Update-nth-array
            • Remove-global-stobj
          • State
          • Mutual-recursion
          • Memoize
          • Mbe
          • Io
          • Defpkg
          • Apply$
          • Loop$
          • Programming-with-state
          • Arrays
          • Characters
          • Time$
          • Defmacro
          • Loop$-primer
          • Fast-alists
          • Defconst
          • Evaluation
          • Guard
          • Equality-variants
          • Compilation
          • Hons
          • ACL2-built-ins
          • Developers-guide
          • System-attachments
          • Advanced-features
          • Set-check-invariant-risk
          • Numbers
          • Efficiency
          • Irrelevant-formals
          • Introduction-to-programming-in-ACL2-for-those-who-know-lisp
          • Redefining-programs
          • Lists
          • Invariant-risk
          • Errors
          • Defabbrev
          • Conses
          • Alists
          • Set-register-invariant-risk
          • Strings
          • Program-wrapper
          • Get-internal-time
          • Basics
          • Packages
          • Oracle-eval
          • Defmacro-untouchable
          • <<
          • Primitive
          • Revert-world
          • Unmemoize
          • Set-duplicate-keys-action
          • Symbols
          • Def-list-constructor
          • Easy-simplify-term
          • Defiteration
          • Fake-oracle-eval
          • Defopen
          • Sleep
        • Operational-semantics
        • Real
        • Start-here
        • Debugging
        • Miscellaneous
        • Output-controls
        • Macros
        • Interfacing-tools
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Defabsstobj

    Illegal-state

    Illegal ACL2 state

    See set-absstobj-debug for background on invariance violations for abstract stobjs. In short, they may occur when execution does not complete for certain atomic operations.

    Such violations cause the following error message to be printed.

    ACL2 Error in CHK-ABSSTOBJ-INVARIANTS:  Possible invariance violation
    for an abstract stobj!
    **PROCEED AT YOUR OWN RISK.**
    To proceed, evaluate the following form.
    :CONTINUE-FROM-ILLEGAL-STATE
    See :DOC set-absstobj-debug.

    At this point, the only way to get ACL2 to evaluate further input is to submit the form :CONTINUE-FROM-ILLEGAL-STATE, as noted above — or more generally, the form it actually represents, (CONTINUE-FROM-ILLEGAL-STATE), which may need to be written as (ACL2::CONTINUE-FROM-ILLEGAL-STATE) if the current-package is other than "ACL2". There is actually one exception: :q is accepted, to pop out of the current call of ld.

    To get a bit more information from the error message displayed above, see set-absstobj-debug.

    See community-book file books/system/tests/abstract-stobj-nesting/nested-abstract-stobjs-input.lsp, Examples 3 and 4, for relevant examples.

    Technical note. An illegal-state is entered when ACL2 sets the ld special, ld-pre-eval-print, to the value :illegal-state.