Pack.Pack_implSourcetype prover_public_parameters = {length : int;srs2_t : Plonk.Bls.G2.t array;g1_t : Plonk.Bls.G1.t;}type ipa_proof = {t_Ls : Plonk.Bls.GT.t array;t_Rs : Plonk.Bls.GT.t array;r_Ls : Plonk.Bls.G1.t array;r_Rs : Plonk.Bls.G1.t array;a0 : Plonk.Bls.G1.t;t0 : Plonk.Bls.G2.t;}val hash :
transcript:bytes ->
random:(?state:Random.State.t -> unit -> 'a) ->
?g1s:Plonk.Bls.G1.t array list ->
?g2s:Plonk.Bls.G2.t array list ->
?gts:Plonk.Bls.GT.t array list ->
?scalars:Plonk.Bls.Scalar.t array list ->
unit ->
'a * bytesval setup_prover :
int ->
(Plonk.Bls.Srs_g1.t * Plonk.Bls.Srs_g2.t) ->
prover_public_parametersval setup :
int ->
(Plonk.Bls.Srs_g1.t * Plonk.Bls.Srs_g2.t) ->
prover_public_parameters * Plonk.Bls.Srs_g1.eltval partial_commit :
relevant_positions:Int.t list ->
prover_public_parameters ->
Bls12_381.G1.t array ->
commitmentval prove_but_not_pack :
prover_public_parameters ->
bytes ->
Plonk.Bls.Scalar.t ->
Plonk.Bls.G1.t array ->
Plonk.Bls.G1.t ->
(ipa_proof * Plonk.Bls.G2.t) * bytesval prove_single :
prover_public_parameters ->
bytes ->
Plonk.Bls.Scalar.t ->
Plonk.Bls.G1.t array ->
(Plonk.Bls.G1.t * (ipa_proof * Plonk.Bls.G2.t)) * bytesval prove :
prover_public_parameters ->
bytes ->
Plonk.Bls.Scalar.t ->
Plonk.Bls.G1.t array list ->
(Plonk.Bls.G1.t list * (ipa_proof * Plonk.Bls.G2.t)) * bytesval verify_single :
Plonk.Bls.G1.t ->
bytes ->
commitment ->
Plonk.Bls.Scalar.t ->
(Plonk.Bls.G1.t * (ipa_proof * Plonk.Bls.G2.t)) ->
bool * bytesval verify :
Plonk.Bls.G1.t ->
bytes ->
commitment list ->
Plonk.Bls.Scalar.t ->
(Plonk.Bls.G1.t list * (ipa_proof * Plonk.Bls.G2.t)) ->
bool * bytes