Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- protostar :: forall a n k p i o ctx f pi m c. (Binary a, Arithmetic a, Binary (Rep p), KnownNat n, KnownNat k, ctx ~ ArithmeticCircuit a p i, f ~ FieldElement ctx, pi ~ [f], m ~ [f], c ~ f, SymbolicInput (IVCInstanceProof pi f c m), Context (IVCInstanceProof pi f c m) ~ ctx, SymbolicData [f], Context [f] ~ ctx, Support [f] ~ Proxy ctx, Ring (PolyVec f 3), HomomorphicCommit m c, i ~ (Layout (IVCInstanceProof pi f c m) :*: U1), o ~ (((Par1 :*: Layout [FieldElement ctx]) :*: (Par1 :*: (Par1 :*: Par1))) :*: (Par1 :*: Par1))) => (forall ctx'. Symbolic ctx' => Vector n (FieldElement ctx') -> Vector k (FieldElement ctx') -> Vector n (FieldElement ctx')) -> ArithmeticCircuit a p i o
Documentation
protostar :: forall a n k p i o ctx f pi m c. (Binary a, Arithmetic a, Binary (Rep p), KnownNat n, KnownNat k, ctx ~ ArithmeticCircuit a p i, f ~ FieldElement ctx, pi ~ [f], m ~ [f], c ~ f, SymbolicInput (IVCInstanceProof pi f c m), Context (IVCInstanceProof pi f c m) ~ ctx, SymbolicData [f], Context [f] ~ ctx, Support [f] ~ Proxy ctx, Ring (PolyVec f 3), HomomorphicCommit m c, i ~ (Layout (IVCInstanceProof pi f c m) :*: U1), o ~ (((Par1 :*: Layout [FieldElement ctx]) :*: (Par1 :*: (Par1 :*: Par1))) :*: (Par1 :*: Par1))) => (forall ctx'. Symbolic ctx' => Vector n (FieldElement ctx') -> Vector k (FieldElement ctx') -> Vector n (FieldElement ctx')) -> ArithmeticCircuit a p i o Source #
Takes a function f
and returns a circuit C
with input y
and witness w
.
The circuit is such that `C(y, w) = 0` implies that `y = x(n)` for some positive n
where
`x(k+1) = f(x(k), u(k))` for all k
and some u
.