pod2/book/src
Eduard S. 143a8c9d4e
First iteration of circuits naming convention
In this commit I remove all `*Gadget` types and instead implement the naming convention defined here https://github.com/0xPARC/pod2/issues/181#issuecomment-3051954321

The biggest changes can be summarized by:
- a) Removal of `*Gadget` types and their `eval_*` methods in favour of `verb_object_circuit` functions.
- b) The above functions don't create targets that need to be witness-assigned later.  Instead they receive those as arguments.  This clearly shows what's the circuit input and output.

I'm specially happy about the changes from b), I think they make the flow of data in the circuit more clear.

Missing things that I did not address in this PR
- The RecursiveCircuit still uses some old naming conventions like `build`.
- We have some `*Target` types that have methods that define constraints.  I think we can keep those as they are convenient and I don't see them as strongly breaking the new convention: I see them as the object-oriented way to apply the convention.  In those cases the `object` can be omitted from the method when it's implied by the type name, and the `_circuit` suffix doesn't appear because it's implied by the fact that the type is a `*Target`.  Examples are: `SignatureTarget::verify -> BoolTarget`, `StatementTarget::has_native_type -> BoolTarget` or `OperationTypeTarget::as_custom -> (BoolTarget, HashOutTarget, Target)`.
2025-07-15 17:49:29 +02:00
..
img docs: add initial docs of Introduction PODs section, with some diagrams (#285) 2025-06-13 11:26:12 +02:00
anchoredkeys.md First iteration of circuits naming convention 2025-07-15 17:49:29 +02:00
architecture.md feat: add architecture doc (#73) 2025-02-18 16:31:39 +01:00
backendtypes.md Organize docs: front and back end; custom predicates. (#96) 2025-03-03 02:26:29 +10:00
custom.md update docs to use pod lang v1 (#268) 2025-06-10 15:08:45 +02:00
custom2.md Aard custom (#49) 2025-02-24 09:05:30 -08:00
customexample.md update docs to use pod lang v1 (#268) 2025-06-10 15:08:45 +02:00
customhash.md Organize docs: front and back end; custom predicates. (#96) 2025-03-03 02:26:29 +10:00
custompred.md update docs to use pod lang v1 (#268) 2025-06-10 15:08:45 +02:00
deductions.md feat: move code here (#11) 2025-01-31 16:20:57 +01:00
examples.md fix anchored keys syntax (#283) 2025-06-12 18:15:02 +02:00
front_and_back.md Organize docs: front and back end; custom predicates. (#96) 2025-03-03 02:26:29 +10:00
introduction.md feat: move code here (#11) 2025-01-31 16:20:57 +01:00
introductionpods.md docs: add initial docs of Introduction PODs section, with some diagrams (#285) 2025-06-13 11:26:12 +02:00
mainpod.md feat: move code here (#11) 2025-01-31 16:20:57 +01:00
merklestatements.md expose some interfaces for external usage (from introduction-pods) (#256) 2025-06-05 11:37:43 +02:00
merkletree.md Merkleproof verify circuit (#143) 2025-03-18 19:34:01 +01:00
operations.md update docs (#242) 2025-06-03 10:49:33 +10:00
podtypes.md Merge changes to docs (#41) 2025-02-10 19:06:45 +01:00
signature.md add signature documentation page (#123) 2025-03-11 19:49:12 +01:00
signedpod.md add signature documentation page (#123) 2025-03-11 19:49:12 +01:00
simpleexample.md update docs to use pod lang v1 (#268) 2025-06-10 15:08:45 +02:00
statements.md update docs to use pod lang v1 (#268) 2025-06-10 15:08:45 +02:00
SUMMARY.md docs: add initial docs of Introduction PODs section, with some diagrams (#285) 2025-06-13 11:26:12 +02:00
values.md Desugar statement templates (#226) 2025-05-09 05:48:18 -07:00