V9.Plonkinclude module type of struct include Plonk.Main_protocol endinclude module type of struct include Plonk.Main_protocol_intf endmodule SMap = Plonk.Main_protocol.SMapmodule type S = Plonk.Main_protocol.Smodule Make_impl = Plonk.Main_protocol.Make_implmodule Make = Plonk.Main_protocol.Makeinclude sig ... endmodule Input_commitment = Plonk.Main_protocol.Input_commitmenttype scalar = Kzg.Bls.Scalar.tval scalar_t : scalar Repr.tval scalar_encoding : scalar Data_encoding.ttype circuit_map = (Plonk.Circuit.t * int) Kzg.SMap.ttype prover_public_parameters =
Make(Plonk.Polynomial_protocol).prover_public_parametersval prover_public_parameters_t : prover_public_parameters Repr.ttype verifier_public_parameters =
Make(Plonk.Polynomial_protocol).verifier_public_parametersval verifier_public_parameters_t : verifier_public_parameters Repr.tval verifier_public_parameters_encoding :
verifier_public_parameters Data_encoding.ttype proof = Make(Plonk.Polynomial_protocol).proofval proof_t : proof Repr.tval proof_encoding : proof Data_encoding.ttype circuit_prover_input =
Make(Plonk.Polynomial_protocol).circuit_prover_input =
{witness : scalar array;input_commitments : Input_commitment.t list;}val circuit_prover_input_t : circuit_prover_input Repr.ttype prover_inputs = circuit_prover_input list Kzg.SMap.tval prover_inputs_t : prover_inputs Repr.ttype public_inputs = Kzg.Bls.Scalar.t array listval public_inputs_t : public_inputs Repr.ttype circuit_verifier_input =
Make(Plonk.Polynomial_protocol).circuit_verifier_input =
{nb_proofs : int;public : public_inputs;commitments : Input_commitment.public list list;}val circuit_verifier_input_t : circuit_verifier_input Repr.tval verifier_inputs_t : circuit_verifier_input Kzg.SMap.t Repr.tval to_verifier_inputs :
prover_public_parameters ->
prover_inputs ->
circuit_verifier_input Kzg.SMap.tval input_commit :
?size:int ->
?shift:int ->
prover_public_parameters ->
scalar array ->
Input_commitment.tval setup :
zero_knowledge:bool ->
circuit_map ->
srs:(Kzg.Bls.Srs.t * Kzg.Bls.Srs.t) ->
prover_public_parameters * verifier_public_parametersval update_prover_public_parameters :
'a Repr.ty ->
'a ->
prover_public_parameters ->
prover_public_parametersval update_verifier_public_parameters :
'a Repr.ty ->
'a ->
verifier_public_parameters ->
verifier_public_parametersval prove : prover_public_parameters -> inputs:prover_inputs -> proofmodule Internal_for_tests = Plonk.Main_protocol.Internal_for_teststype public_parameters = verifier_public_parameterstype verifier_inputs = (string * scalar array list) listval public_parameters_encoding :
Plonk.Main_protocol.verifier_public_parameters Data_encoding.tval scalar_array_encoding : scalar array Data_encoding.encodingval verify :
verifier_public_parameters ->
(string * public_inputs) list ->
proof ->
bool