Safe Haskell | None |
---|---|
Language | Haskell2010 |
Translate arithmetic circuits into a Hadamard product equation and linear constraints.
Synopsis
- setupProof :: MonadRandom m => AltArithCircuit Fr -> m (SetupProof Fr PA)
- data SetupProof f p = SetupProof {
- assignment :: Assignment f
- pedersens :: Pedersens f p
- circuit :: ArithCircuit f
- witness :: ArithWitness f p
- n :: Int
- m :: Int
- data AltArithCircuit f
- data LinearConstraint f = LinearConstraint {
- lcWeightsLeft :: Map Int f
- lcWeightsRight :: Map Int f
- lcWeightsOut :: Map Int f
- lcWeightsIn :: Map Int f
- lcConstant :: f
- data GateConstraint i f = GateConstraint {
- gcLinearConstraintLeft :: LinearConstraint f
- gcLinearConstraintRight :: LinearConstraint f
- gcMulConstraint :: MulConstraint i
- rewire :: Int -> Wire -> AltWire
- rewireCircuit :: ArithCircuit f -> AltArithCircuit f
- circuitToConstraints :: Num f => AltArithCircuit f -> [GateConstraint AltWire f]
- transformInputs :: forall f. Num f => AltArithCircuit f -> AltArithCircuit f
- evalCircuit :: Num f => AltArithCircuit f -> Assignment f -> Assignment f
- computeBulletproofsAssignment :: AltArithCircuit Fr -> [Fr] -> Int -> Assignment Fr
Documentation
setupProof :: MonadRandom m => AltArithCircuit Fr -> m (SetupProof Fr PA) Source #
data SetupProof f p Source #
SetupProof | |
|
Instances
(Show f, Show p) => Show (SetupProof f p) Source # | |
Defined in Circuit.Bulletproofs showsPrec :: Int -> SetupProof f p -> ShowS # show :: SetupProof f p -> String # showList :: [SetupProof f p] -> ShowS # | |
Generic (SetupProof f p) Source # | |
Defined in Circuit.Bulletproofs type Rep (SetupProof f p) :: Type -> Type # from :: SetupProof f p -> Rep (SetupProof f p) x # to :: Rep (SetupProof f p) x -> SetupProof f p # | |
(NFData f, NFData p) => NFData (SetupProof f p) Source # | |
Defined in Circuit.Bulletproofs rnf :: SetupProof f p -> () # | |
type Rep (SetupProof f p) Source # | |
Defined in Circuit.Bulletproofs |
data AltArithCircuit f Source #
Instances
data LinearConstraint f Source #
LinearConstraint | |
|
Instances
data GateConstraint i f Source #
GateConstraint | |
|
Instances
rewireCircuit :: ArithCircuit f -> AltArithCircuit f Source #
Use different wire type as required for the constraints generated in this module.
circuitToConstraints :: Num f => AltArithCircuit f -> [GateConstraint AltWire f] Source #
transformInputs :: forall f. Num f => AltArithCircuit f -> AltArithCircuit f Source #
Replace all input wires v_i with a mul-gate (v_i * 1). This means that when we translate it to linear constraints, the weights matrix for V will always be of rank m, where m is the number of input wires, as is required by the Bulletproof protocol.
:: Num f | |
=> AltArithCircuit f | circuit to evaluate |
-> Assignment f | initial context (containing input variables) |
-> Assignment f | input and output variables |
computeBulletproofsAssignment :: AltArithCircuit Fr -> [Fr] -> Int -> Assignment Fr Source #