Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data RecursiveI i f = RecursiveI (i f) f
- data RecursiveP d k i p c f = RecursiveP (p f) (Vector k (c f)) (AccumulatorInstance k (RecursiveI i) c f) f (Vector (d - 1) (c f))
- type RecursiveFunctionAssumptions algo d a i c f ctx = (StepFunctionAssumptions a f ctx, HashAlgorithm algo f, RandomOracle algo f f, RandomOracle algo (i f) f, RandomOracle algo (c f) f, HomomorphicCommit [f] (c f), Scale a f, Scale a (PolyVec f (d + 1)), Scale f (c f))
- type RecursiveFunction algo d k a i p c = forall f ctx. RecursiveFunctionAssumptions algo d a i c f ctx => RecursiveI i f -> RecursiveP d k i p c f -> RecursiveI i f
- recursiveFunction :: forall algo d k a i p c. (PredicateAssumptions a i p, FunctorAssumptions c, KnownNat (d - 1), KnownNat (d + 1), KnownNat (k - 1), KnownNat k, Zip i) => StepFunction a i p -> RecursiveFunction algo d k a i p c
- type RecursivePredicateAssumptions algo d k a i p c = (KnownNat (d - 1), KnownNat (k - 1), KnownNat k, PredicateAssumptions a i p, FunctorAssumptions c)
- recursivePredicate :: forall algo d k a i p c ctx0 ctx1. (RecursivePredicateAssumptions algo d k a i p c, ctx0 ~ Interpreter a, RecursiveFunctionAssumptions algo d a i c (FieldElement ctx0) ctx0, ctx1 ~ ArithmeticCircuit a (RecursiveI i :*: RecursiveP d k i p c) U1, RecursiveFunctionAssumptions algo d a i c (FieldElement ctx1) ctx1) => RecursiveFunction algo d k a i p c -> Predicate a (RecursiveI i) (RecursiveP d k i p c)
Documentation
data RecursiveI i f Source #
Public input to the recursive function
RecursiveI (i f) f |
Instances
data RecursiveP d k i p c f Source #
Payload to the recursive function
RecursiveP (p f) (Vector k (c f)) (AccumulatorInstance k (RecursiveI i) c f) f (Vector (d - 1) (c f)) |
Instances
type RecursiveFunctionAssumptions algo d a i c f ctx = (StepFunctionAssumptions a f ctx, HashAlgorithm algo f, RandomOracle algo f f, RandomOracle algo (i f) f, RandomOracle algo (c f) f, HomomorphicCommit [f] (c f), Scale a f, Scale a (PolyVec f (d + 1)), Scale f (c f)) Source #
type RecursiveFunction algo d k a i p c = forall f ctx. RecursiveFunctionAssumptions algo d a i c f ctx => RecursiveI i f -> RecursiveP d k i p c f -> RecursiveI i f Source #
recursiveFunction :: forall algo d k a i p c. (PredicateAssumptions a i p, FunctorAssumptions c, KnownNat (d - 1), KnownNat (d + 1), KnownNat (k - 1), KnownNat k, Zip i) => StepFunction a i p -> RecursiveFunction algo d k a i p c Source #
Transform a step function into a recursive function
type RecursivePredicateAssumptions algo d k a i p c = (KnownNat (d - 1), KnownNat (k - 1), KnownNat k, PredicateAssumptions a i p, FunctorAssumptions c) Source #
recursivePredicate :: forall algo d k a i p c ctx0 ctx1. (RecursivePredicateAssumptions algo d k a i p c, ctx0 ~ Interpreter a, RecursiveFunctionAssumptions algo d a i c (FieldElement ctx0) ctx0, ctx1 ~ ArithmeticCircuit a (RecursiveI i :*: RecursiveP d k i p c) U1, RecursiveFunctionAssumptions algo d a i c (FieldElement ctx1) ctx1) => RecursiveFunction algo d k a i p c -> Predicate a (RecursiveI i) (RecursiveP d k i p c) Source #