# dusk-plonk-core Will be parent to `dusk-plonk` and `dusk-plonkup` ### traits - `Composer` will contain `TurboComposer` functionalities (i.e. `gate_add`, `gate_mul`, etc). - `Plonkup` extends `Composer` and requires `append_plonkup_gate` `append_plonkup_table`. - `Circuit` defines the behavior of a circuit/gadget. It takes a `Composer` as generic type. - `TranscriptProvider` provides the base transcript for prover and verifier - `Prover` has a generic type that implements `TranscriptProvider` and another that implements `Circuit`. The `ProverKey` will be a generic type of `Prover`. - `Verifier` has a generic type that implements `TranscriptProvider` and another that implements `Circuit`. The `VerifierKey` will be a generic type of `Verifier`. ### structs - `Compiler` takes as generic a `Prover` & `Verifier`, and outputs its keys. # dusk-zkp-debugger ### lookup tables Introduce a lookup table concept in the CDF file. It is a vector (i.e. of variable length) of `[BlsScalar; 4]`. ### lookup gates Will evaluate the wires `(a, b, c, d) -> (m, n, o, p)`, and will evaluate to `false` if `(m, n, o, p)` doesn't exist in the lookup tables.