In the Groth16 verifier there is both `InvalidProof` and `ProofInvalid` errors but only the `ProofInvalid` is used. This can be slightly confusing when reading, so I would suggest removing the unused `InvalidProof`. `InvalidProof` from `SP1VerifierGroth16` not used anywhere. https://github.com/succinctlabs/sp1-contracts/blob/0885c34b525708ed5f7e87a3d7b20c42564b4c00/contracts/src/v4.0.0-rc.3/SP1VerifierGroth16.sol#L18 `ProofInvalid` from `Groth16Verifier` used multiple places. https://github.com/succinctlabs/sp1-contracts/blob/0885c34b525708ed5f7e87a3d7b20c42564b4c00/contracts/src/v4.0.0-rc.3/Groth16Verifier.sol#L21 --- On the plonk side things are structured differently and it is used.