| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- :: nock-common: common arms between nock-prover and nock-verifier
- /= compute-table /common/table/verifier/compute
- /= memory-table /common/table/verifier/memory
- /= * /common/zeke
- |%
- :: all values in this table must generally be in the order of the tables
- :: specified in the following arm.
- ++ static-table-names
- ^- (list term) ^~
- %- sort
- :_ t-order
- :~ name:static:common:compute-table
- name:static:common:memory-table
- ==
- ::
- :: +core-table-names: tables utilized for every proof
- ++ core-table-names
- ^~ ^- (list term)
- %- sort
- :_ t-order
- :~ name:static:common:compute-table
- name:static:common:memory-table
- ==
- :: +opt-static-table-names: static tables only used when jute-flag=%.y
- ::
- :: TODO make these tables optional depending on whether these jutes are
- :: actually used
- ++ opt-static-table-names
- ^~ ^- (list term)
- ~
- ::
- :: +opt-dynamic-table-names: dynamic tables only used when jute-flag=%.y
- ++ opt-dynamic-table-names
- ^~ ^- (list term)
- ~
- ::
- ++ gen-table-names
- ^- (list term)
- %- sort
- :_ t-order
- %+ weld
- core-table-names
- (weld opt-static-table-names opt-dynamic-table-names)
- ::
- ++ dynamic-table-names
- ^~ ^- (list term)
- ~
- ::
- ++ all-table-names
- ^~ ^- (list term)
- %- sort
- :_ t-order
- (weld static-table-names dynamic-table-names)
- ::
- :: Widths of static tables. Dynamic tables (ie jute) need to be computed separately and passed
- :: in specific data needed for each table.
- ++ table-base-widths-static
- ^~ ^- (list @)
- %+ turn all-static-table-widths
- |=([name=term base-width=@ ext-width=@ mega-ext-width=@ full-width=@] base-width)
- ::
- ++ table-ext-widths-static
- ^~ ^- (list @)
- %+ turn all-static-table-widths
- |=([name=term base-width=@ ext-width=@ mega-ext-width=@ full-width=@] ext-width)
- ::
- ++ table-mega-ext-widths-static
- ^~ ^- (list @)
- %+ turn all-static-table-widths
- |=([name=term base-width=@ ext-width=@ mega-ext-width=@ full-width=@] mega-ext-width)
- ::
- ++ table-full-widths-static
- ^~ ^- (list @)
- %+ turn all-static-table-widths
- |=([name=term base-width=@ ext-width=@ mega-ext-width=@ full-width=@] full-width)
- ::
- ++ core-table-base-widths-static
- ^~ ^- (list @)
- %+ turn core-table-names
- |=(name=term base-width:(~(got by width-map) name))
- ::
- ++ core-table-full-widths-static
- ^~ ^- (list @)
- %+ turn core-table-names
- |=(name=term full-width:(~(got by width-map) name))
- ::
- ++ custom-table-base-widths-static
- |= table-names=(list term)
- ^- (list @)
- %+ turn table-names
- |=(name=term base-width:(~(got by width-map) name))
- ::
- ++ custom-table-full-widths-static
- |= table-names=(list term)
- ^- (list @)
- %+ turn table-names
- |=(name=term full-width:(~(got by width-map) name))
- ::
- ++ width-map
- ^~ ^- (map name=term [base-width=@ ext-width=@ mega-ext-width=@ full-width=@])
- %. all-static-table-widths
- %~ gas by
- ^* %+ map name=term
- [base-width=@ ext-width=@ mega-ext-width=@ full-width=@]
- ::
- ++ all-static-table-widths
- ^~ ^- (list [name=term base-width=@ ext-width=@ mega-ext-width=@ full-width=@])
- %- sort
- :_ tg-order
- :~
- ::
- :* name:static:common:compute-table
- (lent basic-column-names:static:common:compute-table)
- (lent ext-column-names:static:common:compute-table)
- (lent mega-ext-column-names:static:common:compute-table)
- (lent column-names:static:common:compute-table)
- ==
- ::
- :* name:static:common:memory-table
- (lent basic-column-names:static:common:memory-table)
- (lent ext-column-names:static:common:memory-table)
- (lent mega-ext-column-names:static:common:memory-table)
- (lent column-names:static:common:memory-table)
- ==
- ==
- ::
- ++ all-verifier-funcs
- ^~ ^- (list verifier-funcs)
- %- turn
- :_ tail
- %- sort
- :_ tg-order
- :~ [name:static:common:compute-table funcs:engine:compute-table]
- [name:static:common:memory-table funcs:engine:memory-table]
- ==
- ::
- ++ all-terminal-names
- ^~ ^- (list (list term))
- %- turn
- :_ tail
- %- sort
- :_ tg-order
- :~ [name:static:common:compute-table terminal-names:static:common:compute-table]
- [name:static:common:memory-table terminal-names:static:common:memory-table]
- ==
- ::
- ++ all-verifier-funcs-map
- ^~ ^- (map term verifier-funcs)
- %- ~(gas by *(map term verifier-funcs))
- :~ :- name:static:common:compute-table
- funcs:engine:compute-table
- :- name:static:common:memory-table
- funcs:engine:memory-table
- ==
- ::
- ++ remove-unused-constraints
- |= [pre=preprocess-0 table-names=(list term) override=(unit (list term))]
- ^- preprocess-0
- ::
- =? cd.pre !=(~ override)
- %- ~(gas by *table-to-constraint-degree)
- %+ iturn table-names
- |= [j=@ name=term]
- ^- [@ constraint-degrees]
- =/ idx (i name all-table-names)
- [j (~(got by cd.pre) idx)]
- ::
- =? constraint-map.pre !=(~ override)
- %- ~(gas by *(map @ constraints))
- %+ iturn table-names
- |= [j=@ name=term]
- ^- [@ constraints]
- =/ idx (i name all-table-names)
- [j (~(got by constraint-map.pre) idx)]
- ::
- pre
- --
|