* Organize docs: front and back end; custom predicates.
* Whoops forgot to hit save before git commit last time -- delete stuff moved out of values.md
* Update book/src/values.md
---------
Co-authored-by: Ahmad Afuni <root@ahmadafuni.com>
* Merge changes to docs
* Fix typo
* Correct SUMMARY so it compiles; update .gitignore
* Clean up statements.md
Make syntax and notation consistent with Rust source code.
* Fix statements for Merkle trees and compound types
* First draft of custom statements and small updates to signedpod.md
* Update book/src/merkletree.md
Co-authored-by: Ahmad Afuni <root@ahmadafuni.com>
* merklestatements correct typo
Co-authored-by: Ahmad Afuni <root@ahmadafuni.com>
* add todo for gadget ids
Co-authored-by: Ahmad Afuni <root@ahmadafuni.com>
* Separate out custom statements version 1
* More details on custom statements version 1
* new file custom2
* Partial draft of version 2
* First draft of version 2 spec, it's kind of a mess
* Another version of the custom predicates spec
* Update book/src/custom2.md
Co-authored-by: Eduard S. <eduardsanou@posteo.net>
* Simple example of deduction rule applied in circuit
* Implement Edu's comments on custom predicates
* Backend predicates must be defined in groups
* Add more examples
* Two diff statements using same constant
* Remove deprecated example
---------
Co-authored-by: Ahmad Afuni <root@ahmadafuni.com>
Co-authored-by: Eduard S. <eduardsanou@posteo.net>
* Implement Containers (Dictionary,Set,Array) on top of MerkleTree. And restructure the code.
- Reorganize the code grouping backends, middleware, frontend, (crypto) primitives.
- Add types Dictionary,Set,Array at the middleware layer, so that
it can be used both by the backend and frontend. The Dictionary, Set,
Array use the merkletree differently as specified at
f2575d1524/book/src/values.md (dictionary-array-set)
- The containers introduce the trait Container, which has the
method 'cm()'. At the current version this uses a merkletree
under the hood, and the method 'cm' returns the merkle root.
- Ideally neither frontend nor backend use the MerkleTree type, and they
use the wrappers {Dictionary,Set,Array}. Note that the current commit
the MerkleTree is used at the mock-backend to check internal values, but
not at the struct types.
- updated the spec's merkletree section updating the defined interface
- add github ci to run the tests
---------
Co-authored-by: Ahmad Afuni <root@ahmadafuni.com>
Co-authored-by: Eduard S. <eduardsanou@posteo.net>
* Progress towards mock MainPod verification
* add MockMainPod.pub_statements logic so that when originid==SELF it is replaced by self.id()
* Basic op checking for mock MainPOD
* More op checking
* wip
* feat: add great boy example
* feat: put examples under cfg(test)
---------
Co-authored-by: Ahmad <root@ahmadafuni.com>
Co-authored-by: arnaucube <git@arnaucube.com>
* Merge changes to docs
* Fix typo
* Correct SUMMARY so it compiles; update .gitignore
* Clean up statements.md
Make syntax and notation consistent with Rust source code.
* Fix statements for Merkle trees and compound types
* First draft of custom statements and small updates to signedpod.md
* Update book/src/merkletree.md
Co-authored-by: Ahmad Afuni <root@ahmadafuni.com>
* merklestatements correct typo
Co-authored-by: Ahmad Afuni <root@ahmadafuni.com>
* add todo for gadget ids
Co-authored-by: Ahmad Afuni <root@ahmadafuni.com>
* Remove custom statements, will do on separate branch
* Restore Merkle examples and statements table
---------
Co-authored-by: Ahmad Afuni <root@ahmadafuni.com>
Extend merkletree spec, init SignedPod section, add typos checker in CI
- extend merkletree spec, converting old hand-drawn diagrams to drawio
diagrams, and adding new diagrams (related: #6)
- init SignedPod section (related: #2)
- initial draft of the types dictionary, set, array (related: #26)
- add typos checker in CI (and correct the ones that were detected)
Note on drawio diagrams: each image file contains the metadata to edit the diagram in the draw.io website.
Add initial MerkleTree implementation, which is a wrapper on top of
Plonky2's MerkleTree, with the idea that the future iteration will
replace it by the MerkleTree specified at
https://0xparc.github.io/pod2/merkletree.html .