use zkstd::common::{Group, Pairing, PairingRange};
#[allow(dead_code)]
#[derive(Debug)]
pub struct Witness<P: Pairing> {
pub c_eval: P::G1Affine,
pub q_eval: P::G1Affine,
pub denominator: P::G2PairngRepr,
pub h: P::G2PairngRepr,
}
impl<P: Pairing> Witness<P> {
pub fn verify(self) -> bool {
let pairing =
P::multi_miller_loop(&[(self.c_eval, self.h), (self.q_eval, self.denominator)])
.final_exp();
pairing == <<P as Pairing>::PairingRange as PairingRange>::Gt::ADDITIVE_IDENTITY
}
}