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.