23 const size_t transcript_id = 0;
27 auto c0_tag =
OriginTag(transcript_id, 0,
true);
28 auto alpha_tag =
OriginTag(transcript_id, 0,
false);
29 auto c1_tag =
OriginTag(transcript_id, 1,
true);
33 EXPECT_NO_THROW(c0_times_alpha =
OriginTag(c0_tag, alpha_tag));
38 EXPECT_THROW(
OriginTag(c0_times_alpha, c1_tag), std::runtime_error);
41 EXPECT_THROW(
OriginTag(c0_tag, c1_tag), std::runtime_error);
109 const size_t transcript_id = 0;
111 auto submitted_tag =
OriginTag(transcript_id, 0,
true);
116 EXPECT_NO_THROW(result =
OriginTag(submitted_tag, constant_tag));
117 EXPECT_EQ(result, submitted_tag);
119 EXPECT_NO_THROW(result =
OriginTag(constant_tag, submitted_tag));
120 EXPECT_EQ(result, submitted_tag);
156 std::vector<FF> fake_proof;
157 for (
size_t i = 0; i < 10; i++) {
160 transcript->load_proof(fake_proof);
163 auto c0 = transcript->template receive_from_prover<FF>(
"c0");
166 auto alpha = transcript->template get_challenge<FF>(
"alpha");
169 auto c1 = transcript->template receive_from_prover<FF>(
"c1");
172 FF c0_times_alpha = c0 * alpha;
175 EXPECT_THROW([[maybe_unused]]
auto bad = c0_times_alpha + c1, std::runtime_error);
178 EXPECT_THROW([[maybe_unused]]
auto bad = c0 + c1, std::runtime_error);
181 auto beta = transcript->template get_challenge<FF>(
"beta");
184 FF c1_times_beta = c1 * beta;
185 EXPECT_NO_THROW([[maybe_unused]]
auto good = c0_times_alpha + c1_times_beta);
191 const size_t transcript_id = 0;
193 auto transcript_tag =
OriginTag(transcript_id, 0,
true);
198 EXPECT_THROW(
OriginTag(transcript_tag, free_witness_tag), std::runtime_error);
199 EXPECT_THROW(
OriginTag(free_witness_tag, transcript_tag), std::runtime_error);
203 EXPECT_NO_THROW(
OriginTag(free_witness_tag, another_free_witness));
207 EXPECT_NO_THROW(
OriginTag(free_witness_tag, constant_tag));
213 const size_t transcript_id = 0;
226 auto commitment_tag =
OriginTag(transcript_id, 0,
true);
227 auto eval_challenge_tag =
OriginTag(transcript_id, 0,
false);
228 auto eval_tag =
OriginTag(transcript_id, 1,
true);
232 auto comm_times_challenge =
OriginTag(commitment_tag, eval_challenge_tag);
233 EXPECT_THROW(
OriginTag(comm_times_challenge, eval_tag), std::runtime_error);
239 const auto& eval_retagged = eval_challenge_tag;
242 EXPECT_NO_THROW(
OriginTag(comm_times_challenge, eval_retagged));
252 EXPECT_NE(tag_a.tag_id, tag_b.tag_id);
255 auto tag_a_copy = tag_a;
256 EXPECT_EQ(tag_a_copy.tag_id, tag_a.tag_id);
260 EXPECT_NE(merged.tag_id, tag_a.tag_id);
261 EXPECT_NE(merged.tag_id, tag_b.tag_id);