| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /= z /common/zeke
- /= nock-common /common/nock-common
- =< preprocess-data
- |%
- :: +preprocess-data: precompute all data necessary to run the prover/verifier
- ++ preprocess-data
- ^- preprocess-0:z
- |^
- ~& %computing-preprocess-data
- =/ cd compute-table-to-constraint-degree
- =/ constraints compute-constraints
- =/ count-map count-constraints
- :* %0
- cd
- constraints
- count-map
- ==
- ::
- :: compute max degree of the constraints for each table
- ++ compute-table-to-constraint-degree
- ^- table-to-constraint-degree:z
- %- ~(gas by *(map @ constraint-degrees:z))
- %+ iturn:z all-verifier-funcs:nock-common
- |= [i=@ funcs=verifier-funcs:z]
- ^- [@ constraint-degrees:z]
- [i (compute-constraint-degree funcs)]
- ::
- ++ compute-constraint-degree
- |= funcs=verifier-funcs:z
- ^- constraint-degrees:z
- =- [(snag 0 -) (snag 1 -) (snag 2 -) (snag 3 -) (snag 4 -)]
- %+ turn
- :~ (unlabel-constraints:constraint-util:z boundary-constraints:funcs)
- (unlabel-constraints:constraint-util:z row-constraints:funcs)
- (unlabel-constraints:constraint-util:z transition-constraints:funcs)
- (unlabel-constraints:constraint-util:z terminal-constraints:funcs)
- (unlabel-constraints:constraint-util:z extra-constraints:funcs)
- ==
- |= l=(list mp-ultra:z)
- %+ roll
- l
- |= [constraint=mp-ultra:z d=@]
- %+ roll
- (mp-degree-ultra:z constraint)
- |= [a=@ d=_d]
- (max d a)
- ::
- ++ compute-constraints
- ^- (map @ constraints:z)
- |^
- %- ~(gas by *(map @ constraints:z))
- %+ iturn:z all-verifier-funcs:nock-common
- |= [i=@ funcs=verifier-funcs:z]
- :- i
- :* (build-constraint-data boundary-constraints:funcs)
- (build-constraint-data row-constraints:funcs)
- (build-constraint-data transition-constraints:funcs)
- (build-constraint-data terminal-constraints:funcs)
- (build-constraint-data extra-constraints:funcs)
- ==
- ::
- ++ build-constraint-data
- |= cs=(map term mp-ultra:z)
- ^- (list constraint-data:z)
- %+ turn (unlabel-constraints:constraint-util:z cs)
- |= c=mp-ultra:z
- [c (mp-degree-ultra:z c)]
- --
- ::
- ++ count-constraints
- ^- (map @ constraint-counts:z)
- |^
- =/ vrf-funcs all-verifier-funcs:nock-common
- %- ~(gas by *(map @ constraint-counts:z))
- %+ iturn:z
- all-verifier-funcs:nock-common
- |= [i=@ funcs=verifier-funcs:z]
- :- i
- :* (count (unlabel-constraints:constraint-util:z boundary-constraints:funcs))
- (count (unlabel-constraints:constraint-util:z row-constraints:funcs))
- (count (unlabel-constraints:constraint-util:z transition-constraints:funcs))
- (count (unlabel-constraints:constraint-util:z terminal-constraints:funcs))
- (count (unlabel-constraints:constraint-util:z extra-constraints:funcs))
- ==
- ::
- ++ count
- |= cs=(list mp-ultra:z)
- ^- @
- %+ roll
- cs
- |= [mp=mp-ultra:z num=@]
- ?- -.mp
- %mega +(num)
- %comp (add num (lent com.mp))
- ==
- --
- -- :: |^
- --
|