• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
      • Break-rewrite
        • Monitor
        • Brr
          • Brr-evisc-tuple
            • Set-brr-evisc-tuple
          • Set-brr-evisc-tuple
        • Brr-commands
        • Dmr
        • With-brr-data
        • Geneqv
        • Refinement-failure
        • Break-lemma
        • Why-brr
        • Brr@
        • Cw-gstack
        • Ok-if
        • Windows-installation
        • Brr-near-missp
        • Monitored-runes
        • Unmonitor
        • Monitor!
      • Proof-builder
      • Accumulated-persistence
      • Cgen
      • Forward-chaining-reports
      • Proof-tree
      • Print-gv
      • Dmr
      • With-brr-data
      • Splitter
      • Guard-debug
      • Set-debugger-enable
      • Redo-flat
      • Time-tracker
      • Set-check-invariant-risk
      • Removable-runes
      • Efficiency
      • Explain-near-miss
      • Tail-biting
      • Failed-forcing
      • Sneaky
      • Invariant-risk
      • Failure
      • Measure-debug
      • Dead-events
      • Compare-objects
      • Prettygoals
      • Remove-hyps
      • Type-prescription-debugging
      • Pstack
      • Trace
      • Set-register-invariant-risk
      • Walkabout
      • Disassemble$
      • Nil-goal
      • Cw-gstack
      • Set-guard-msg
      • Find-lemmas
      • Watch
      • Quick-and-dirty-subsumption-replacement-step
      • Profile-all
      • Profile-ACL2
      • Set-print-gv-defaults
      • Minimal-runes
      • Spacewalk
      • Try-gl-concls
      • Near-misses
    • 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
        • Break-rewrite
          • Monitor
          • Brr
            • Brr-evisc-tuple
              • Set-brr-evisc-tuple
            • Set-brr-evisc-tuple
          • Brr-commands
          • Dmr
          • With-brr-data
          • Geneqv
          • Refinement-failure
          • Break-lemma
          • Why-brr
          • Brr@
          • Cw-gstack
          • Ok-if
          • Windows-installation
          • Brr-near-missp
          • Monitored-runes
          • Unmonitor
          • Monitor!
        • Proof-builder
        • Accumulated-persistence
        • Cgen
        • Forward-chaining-reports
        • Proof-tree
        • Print-gv
        • Dmr
        • With-brr-data
        • Splitter
        • Guard-debug
        • Set-debugger-enable
        • Redo-flat
        • Time-tracker
        • Set-check-invariant-risk
        • Removable-runes
        • Efficiency
        • Explain-near-miss
        • Tail-biting
        • Failed-forcing
        • Sneaky
        • Invariant-risk
        • Failure
        • Measure-debug
        • Dead-events
        • Compare-objects
        • Prettygoals
        • Remove-hyps
        • Type-prescription-debugging
        • Pstack
        • Trace
        • Set-register-invariant-risk
        • Walkabout
        • Disassemble$
        • Nil-goal
        • Cw-gstack
        • Set-guard-msg
        • Find-lemmas
        • Watch
        • Quick-and-dirty-subsumption-replacement-step
        • Profile-all
        • Profile-ACL2
        • Set-print-gv-defaults
        • Minimal-runes
        • Spacewalk
        • Try-gl-concls
        • Near-misses
      • Miscellaneous
      • Output-controls
      • Macros
      • Interfacing-tools
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Brr
  • Evisc-tuple

Brr-evisc-tuple

Determines partial suppression of output from brr-commands

See evisc-tuple for relevant background on ``evisceration'': eliding of subexpressions during printing. Also see break-rewrite for background on the break-rewrite loop.

General Form:
(brr-evisc-tuple state)

The value of this function is used as the evisceration tuple by brr-commands. The value can be changed with set-brr-evisc-tuple or the more general set-evisc-tuple.

A special value, :default, is legal for this evisc-tuple, and is its initial value. In that case the actual evisc-tuple used during output from brr-commands — which we call the effective value of the brr-evisc-tuple — is the value of the evisc-tuple for terms. See set-evisc-tuple, in particular, the discussion of the :term site for setting evisc-tuples.

Think of brr-evisc-tuple as a true global variable, not a locally bound variable of break-rewrite. In particular, if you set the brr-evisc-tuple inside a break-rewrite interactive break and eventually exit that break — either to enter a deeper break or return to a shallower break or to the ACL2 top-level — the brr-evisc-tuple will retain its chronologically most recent setting.

The brr-evisc-tuple is used when break-rewrite prints its banner opening or closing a break on some monitored rune and when certain brr-commands print their results.

When you're in a break-rewrite break, you're actually dealing with the read-eval-print loop managed by ld. It prints its results using the ld-evisc-tuple, while brr-commands use brr-evisc-tuple. This can cause some confusion.

For example, suppose you have set the brr-evisc-tuple to (evisc-tuple 2 3 nil nil) so break-rewrite banners and brr-commands only print to depth 2 and length 3. Suppose the target term is (F (G (H 1)) 2 3 4 5 6 7). Then the following interaction with break-rewrite could occur:

3 ACL2 >:target
(F (G #) 2 ...)
3 ACL2 >(make-list 10)
(NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL)

You might ask ``Given that the brr-evisc-tuple limits the print length to 3, which I see when I print :target, how come the make-list showed all 10 elements?'' The answer is that the brr-command :target actually printed the target with the brr-evisc-tuple and returned (value :invisible) which ld's read-eval-print loop doesn't print. But the make-list returned a list of length ten and the read-eval-print loop printed it using the ld-evisc-tuple.

Another issue relating brr-evisc-tuple and ld-evisc-tuple is that while brr-evisc-tuple is a true global, retaining its chronologically most recently set value at all depths of break-rewrite, ld-evisc-tuple is locally bound by break-rewrite (actually, by the ld in wormhole) and so sees its value restored as break-rewrite ascends back toward the top-level of ACL2.

Subtopics

Set-brr-evisc-tuple
Set the brr-evisc-tuple