Overview
PyH2P is described in the TestRIG paper as pointing "in an encouraging direction" for processor verification, while TestRIG is presented as a maturation of that approach through a standardized communication interface for interchangeable verification engines, models, and implementations.[1]
Verification model
The evidence states that PyH2P "relies only on final register and memory state" and can still usefully detect divergence.[2] This is discussed in the context of RVFI visibility limits: not all architectural updates are reported through the RVFI PC interface, with floating-point registers and extended CHERI capability registers given as examples of unreported state.[2]
The same passage notes that occasional instructions moving otherwise unexposed values into RVFI-visible state could produce succinct counterexamples.[3]
Limitations noted in comparison with TestRIG
The TestRIG paper explicitly lists a limitation: PyH2P "does not use community-standard interfaces that have been proven across a range of implementations."[4]
TestRIG is contrasted with PyH2P by proposing a standardized communication interface so that verification engines, models, and implementations can be interchangeable and improved independently.[1]
Relationship to shrinking and instruction injection
The TestRIG paper states that interactive verification using RVFI-DII enables automated simplification and shrinking.[5] It also states that instruction injection allows straightforward shrinking of sequences with branches.[6] These claims are presented as part of TestRIG/RVFI-DII rather than as a direct property of PyH2P in the provided evidence.
References
[1]: See citation "PyH2P direction and TestRIG maturation". [2]: See citation "PyH2P final-state divergence detection". [3]: See citation "Succinct counterexamples from RVFI-visible state". [4]: See citation "PyH2P interface limitation". [5]: See citation "RVFI-DII interactive verification enables shrinking". [6]: See citation "Instruction injection and shrinking with branches".