kimchi_stubs/
lib.rs

1//! The Marlin_plonk_stubs crate exports some functionalities
2//! and structures from the following the Rust crates to OCaml:
3//!
4//! * [Proof-systems](https://github.com/o1-labs/proof-systems),
5//!   a PLONK implementation.
6//! * [Arkworks](http://arkworks.rs/),
7//!   a math library that Proof-systems builds on top of.
8//!
9
10extern crate libc;
11
12/// Caml helpers
13#[macro_use]
14pub mod caml;
15
16/// Arkworks types
17pub mod arkworks;
18
19/// Utils
20pub mod urs_utils; // TODO: move this logic to proof-systems
21
22/// Vectors
23pub mod field_vector;
24pub mod gate_vector;
25
26/// Curves
27pub mod projective;
28
29/// SRS
30pub mod srs;
31
32pub mod lagrange_basis;
33pub use lagrange_basis::WithLagrangeBasis;
34
35/// Indexes
36pub mod pasta_fp_plonk_index;
37pub mod pasta_fq_plonk_index;
38
39/// Verifier indexes/keys
40pub mod plonk_verifier_index;
41
42pub mod pasta_fp_plonk_verifier_index;
43pub mod pasta_fq_plonk_verifier_index;
44
45/// Oracles
46pub mod oracles;
47
48/// Proofs
49pub mod pasta_fp_plonk_proof;
50pub mod pasta_fq_plonk_proof;
51
52/// Poseidon
53pub mod pasta_fp_poseidon;
54pub mod pasta_fq_poseidon;
55
56/// Linearization helpers
57pub mod linearization;
58
59/// Handy re-exports
60pub use {
61    kimchi::circuits::{
62        gate::{caml::CamlCircuitGate, CurrOrNext, GateType},
63        scalars::caml::CamlRandomOracles,
64        wires::caml::CamlWire,
65    },
66    kimchi::proof::caml::CamlProofEvaluations,
67    kimchi::prover::caml::{
68        CamlLookupCommitments, CamlProofWithPublic, CamlProverCommitments, CamlProverProof,
69    },
70    mina_poseidon::sponge::caml::CamlScalarChallenge,
71    poly_commitment::{commitment::caml::CamlPolyComm, ipa::caml::CamlOpeningProof},
72};