Module Pack.Pack_impl

type scalar = Kzg.Bls.Scalar.t
type g1 = Kzg.Bls.G1.t
type g2 = Kzg.Bls.G2.t
type gt = Kzg.Bls.GT.t
type prover_public_parameters = {
  1. length : int;
  2. srs2_t : Kzg.Bls.G2.t array;
  3. g1_t : Kzg.Bls.G1.t;
}
val prover_public_parameters_t : prover_public_parameters Repr.t
type verifier_public_parameters = Kzg.Bls.G1.t
val verifier_public_parameters_t : Kzg.Bls.G1.t Repr.t
type data = Kzg.Bls.G1.t
type commitment = {
  1. cmt_t : Kzg.Bls.GT.t;
  2. cmt_len : int;
}
val commitment_t : commitment Repr.t
type randomness = Kzg.Bls.Scalar.t
type packed = Kzg.Bls.G1.t
val packed_t : Kzg.Bls.G1.t Repr.t
type ipa_proof = {
  1. t_Ls : Kzg.Bls.GT.t array;
  2. t_Rs : Kzg.Bls.GT.t array;
  3. r_Ls : Kzg.Bls.G1.t array;
  4. r_Rs : Kzg.Bls.G1.t array;
  5. a0 : Kzg.Bls.G1.t;
  6. t0 : Kzg.Bls.G2.t;
}
val ipa_proof_t : ipa_proof Repr.t
val empty_ipa_proof : int -> ipa_proof
type kzg_proof = Kzg.Bls.G2.t
val kzg_proof_t : Kzg.Bls.G2.t Repr.t
type proof = ipa_proof * kzg_proof
val proof_t : (ipa_proof * Kzg.Bls.G2.t) Repr.t
type setup_params = int
val hash : transcript:Kzg.Utils.Transcript.t -> ?g1s:Kzg.Bls.G1.t array list -> ?g2s:Kzg.Bls.G2.t array list -> ?gts:Kzg.Bls.GT.t array list -> ?scalars:Kzg.Bls.Scalar.t array list -> unit -> Kzg.Bls.Scalar.t * Kzg__Utils.Transcript.t
val ip_pairing : Mavryk_bls12_381.G1.t array -> Mavryk_bls12_381.G2.t array -> Kzg.Bls.GT.t
val setup_verifier : Kzg.Bls.Srs_g1.t -> Kzg.Bls.Srs_g1.elt
val get_setup_params : prover_public_parameters -> int
val public_parameters_to_bytes : prover_public_parameters -> Stdlib.Bytes.t
val commitment_cardinal : commitment -> int
val partial_commit : relevant_positions:Stdlib.Int.t list -> prover_public_parameters -> Mavryk_bls12_381.G1.t array -> commitment
val bytes_of_commitment : commitment -> bytes
val empty_commitment : commitment
val combine : commitment -> commitment -> commitment
val pack : Kzg.Bls.G1.Scalar.t array -> Kzg.Bls.G1.t array -> Kzg.Bls.G1.t
val array_split_in_half : 'a array -> 'b array * 'a array
val array_padded_with_zero : 'a array -> int -> 'b -> 'a array
val prove_but_not_pack : prover_public_parameters -> Kzg.Utils.Transcript.t -> Kzg.Bls.Scalar.t -> Kzg.Bls.G1.t array -> Kzg.Bls.G1.t -> (ipa_proof * Kzg.Bls.G2.t) * Kzg__Utils.Transcript.t
val prove_single : prover_public_parameters -> Kzg.Utils.Transcript.t -> Kzg.Bls.Scalar.t -> Kzg.Bls.G1.t array -> (Kzg.Bls.G1.t * (ipa_proof * Kzg.Bls.G2.t)) * Kzg__Utils.Transcript.t
val prove : prover_public_parameters -> Kzg.Utils.Transcript.t -> Kzg.Bls.Scalar.t -> Kzg.Bls.G1.t array list -> (Kzg.Bls.G1.t list * (ipa_proof * Kzg.Bls.G2.t)) * Kzg__Utils.Transcript.t
val verify_single : Kzg.Bls.G1.t -> Kzg.Utils.Transcript.t -> commitment -> Kzg.Bls.Scalar.t -> (Kzg.Bls.G1.t * (ipa_proof * Kzg.Bls.G2.t)) -> bool * Kzg__Utils.Transcript.t
val verify : Kzg.Bls.G1.t -> Kzg.Utils.Transcript.t -> commitment list -> Kzg.Bls.Scalar.t -> (Kzg.Bls.G1.t list * (ipa_proof * Kzg.Bls.G2.t)) -> bool * Kzg__Utils.Transcript.t