42 NativeProofResult proof_result = create_proof_and_vk();
43 auto [proof, verification_key, public_inputs_cols] = proof_result;
45 Verifier verifier(verification_key);
47 const bool verified = verifier.verify_proof(proof, public_inputs_cols);
49 ASSERT_TRUE(verified) <<
"native proof verification failed";
54 NativeProofResult proof_result = create_proof_and_vk();
55 auto [proof, verification_key, public_inputs_cols] = proof_result;
56 auto verify_with_corrupt_pi_col = [&](
size_t col_idx) {
57 public_inputs_cols[col_idx][5] += FF::one();
58 Verifier verifier(verification_key);
59 const bool verified = verifier.verify_proof(proof, public_inputs_cols);
60 ASSERT_FALSE(verified)
61 <<
"native proof verification succeeded, but should have failed due to corruption of public inputs col "
63 public_inputs_cols[col_idx][5] -= FF::one();
65 for (
size_t col_idx = 0; col_idx < 4; col_idx++) {
66 verify_with_corrupt_pi_col(col_idx);
68 Verifier verifier(verification_key);
69 const bool verified = verifier.verify_proof(proof, public_inputs_cols);
70 ASSERT_TRUE(verified) <<
"native proof verification failed, but should have succeeded";