Aggregation.Polynomial_commitmentmodule SMap = Kzg.SMapmodule type S = sig ... endmodule Make_impl
  (PC : 
    Kzg.Interfaces.Polynomial_commitment
      with type Commitment.t = Kzg.Bls.G1.t SMap.t) : 
  sig ... endmodule Make
  (PC : 
    Kzg.Interfaces.Polynomial_commitment
      with type Commitment.t = Kzg.Bls.G1.t SMap.t) : 
  Sinclude sig ... endtype secret = Kzg.Bls.Poly.t Kzg.SMap.ttype query = Kzg.Bls.Scalar.t Kzg.SMap.tval query_t : query Repr.ttype answer = Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.tval answer_t : answer Repr.ttype proof = Make(Kzg.Polynomial_commitment).proofval proof_t : proof Repr.tmodule Commitment : sig ... endmodule Public_parameters : sig ... endval commit : 
  ?all_keys:string list ->
  Public_parameters.prover ->
  secret ->
  Commitment.t * Commitment.prover_auxval prove : 
  Public_parameters.prover ->
  Kzg.Utils.Transcript.t ->
  secret list ->
  Commitment.prover_aux list ->
  query list ->
  answer list ->
  proof * Kzg.Utils.Transcript.tval verify : 
  Public_parameters.verifier ->
  Kzg.Utils.Transcript.t ->
  Commitment.t list ->
  query list ->
  answer list ->
  proof ->
  bool * Kzg.Utils.Transcript.ttype prover_aux = Make(Kzg.Polynomial_commitment).prover_aux = {r : Kzg.Bls.Scalar.t;s_list : Kzg.Bls.Scalar.t SMap.t list;}Auxiliary information needed by the prover for the meta-verification in aPlonK
val prove_super_aggregation : 
  Public_parameters.prover ->
  Kzg.Utils.Transcript.t ->
  Kzg.Bls.Poly.t SMap.t list ->
  Commitment.prover_aux list ->
  query list ->
  Kzg.Bls.Scalar.t SMap.t SMap.t list ->
  (proof * prover_aux) * Kzg.Utils.Transcript.tval verify_super_aggregation : 
  Public_parameters.verifier ->
  Kzg.Utils.Transcript.t ->
  Commitment.t list ->
  query list ->
  Kzg.Bls.Scalar.t SMap.t list ->
  proof ->
  bool * Kzg.Bls.Scalar.t * Kzg.Utils.Transcript.t