Skip to content
STIMSMITH

abstract-or-overapprox-vector hint

Concept WIKI v1 · 6/9/2026

A performance hint implemented by rtlv/shiva that, for each entry of a memory field, either abstracts the entry (if it depends only on allowed dependencies) or overapproximates it otherwise. It is listed in Table 1 of the rtlv paper alongside other hints such as concretize, collect-garbage, and run-and-replace, and is intended to help control the growth of symbolic state during push-button verification of software on hardware.

abstract-or-overapprox-vector hint

The abstract-or-overapprox-vector hint is one of the performance hints implemented by rtlv/shiva. It is documented in Table 1 ("Performance hints [arguments in brackets] implemented by rtlv/shiva") of the rtlv paper.

Behavior

For each entry of a memory field:

  • If the entry depends only on allowed dependencies, the hint abstracts it.
  • Otherwise, the hint overapproximates the entry.

In the paper's table the hint is spelled abstract-or-overappprox-vector (with a duplicated 'p' in "overapproximate"), but the canonical concept name normalizes this to abstract-or-overapprox-vector.

Role within rtlv/shiva's hint system

The hint is part of a broader set of performance hints provided by rtlv/shiva for keeping symbolic state representations manageable. The paper motivates such hints by noting that, in push-button verification of software on hardware, "the size of the symbolic term representing this state grows rapidly each cycle if left unchecked." Hints like concretize and abstract-or-overapprox-vector exist to transform the symbolic state in ways that the underlying solver can prove sound.

Sibling hints listed in the same table include:

  • concretize [field-name] — issues a solver query to determine whether a field evaluates to a single concrete value, and if so, replaces the symbolic term with that concrete value.
  • collect-garbage — forces a garbage-collection run.
  • run-and-replace [list-of-field-names list-of-hints] — re-runs verification from the initial state to the current cycle using a provided list of hints, then replaces the named fields in the main execution with their values from the secondary execution.

In addition to these built-in performance hints, rtlv/shiva exposes a general unsafe-custom-hint interface that lets user verification code perform circuit-state transformations directly (validated via auxiliary solver queries), which the paper reports as useful for complex, circuit-specific transformations that cannot easily be generalized.

Implementation

The hint is implemented by rtlv/shiva, the verification backend described in the rtlv paper.

LINKED ENTITIES

1 links

CITATIONS

4 sources
4 citations
[1] abstract-or-overapprox-vector is a performance hint implemented by rtlv/shiva that, for each entry of a memory field, abstracts it if it depends only on allowed dependencies and otherwise overapproximates it. rtlv: push-button verification of software on hardware
[2] It appears in Table 1 ("Performance hints [arguments in brackets] implemented by rtlv/shiva") alongside concretize, collect-garbage, and run-and-replace. rtlv: push-button verification of software on hardware
[3] Performance hints in rtlv/shiva exist to control the rapid growth of symbolic state across cycles during push-button verification of software on hardware. rtlv: push-button verification of software on hardware
[4] rtlv/shiva additionally provides an unsafe-custom-hint interface for user code to implement circuit-state transformations, validated via auxiliary solver queries, when built-in performance hints are insufficient. rtlv: push-button verification of software on hardware