abstract hint
The abstract hint is one of the performance hints supported by the rtlv/shiva tool, part of the rtlv framework for push-button verification of software on hardware. It is designed to take advantage of the specific property being verified and is therefore more specialized than general-purpose optimizations such as Rosette's built-in rewrite rules.
Behavior
When applied to a field, the abstract hint:
- Determines whether the field depends only on the current set of allowed dependencies.
- If the dependency check passes, replaces the field with a fresh symbolic value.
- Adds that fresh symbolic value to the set of allowed dependencies.
This transformation is sound because a value can always be safely overapproximated by a completely unconstrained fresh symbolic. The dependency check maintains the invariant that values in the allowed-dependencies set only depend on previous inputs.
Property-specificity
A symbolic value being marked as an "allowed dependency" is only meaningful in the context of the output determinism property. Consequently, the abstract hint is inherently property-specific — unlike generic rewriting optimizations, its correctness depends on the property being verified and the maintenance of the allowed-dependencies invariant.
Context within rtlv/shiva
The abstract hint is mentioned alongside the concretize hint (which, in contrast, reduces a field to a concrete value such as 0 when the dependency check fails) and several other hints described in Table 1 of the rtlv paper. These hints together make verification tractable; for example, the paper reports that without performance hints, verification of the MicroTitan case study would time out, with the concretize hint on the SPI peripheral's RX FIFO state machine register cited as a critical performance hint.
Significance
The abstract hint demonstrates how rtlv/shiva embeds property-aware reasoning directly into the symbolic-evaluation loop, complementing Rosette's general-purpose rewrite rules with transformations that exploit the structure of output determinism and the allowed-dependencies invariant.