symbolic-base-0.1.0.0: ZkFold Symbolic compiler and zero-knowledge proof protocols
Safe HaskellSafe-Inferred
LanguageHaskell2010

ZkFold.Base.Protocol.Protostar.RecursiveCircuit

Synopsis

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.