Publish a scannable manual and a bibliography that links each paper back to the pages that use it.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
cf8054a0b3
commit
695f8e84f7
45 changed files with 4848 additions and 338 deletions
29
doc/pages/programmability.md
Normal file
29
doc/pages/programmability.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# Programmability {#programmability}
|
||||
|
||||
Fill in a secret index or payload after the key exists, rewrite an
|
||||
updatable leaf, or commit to a vector before choosing which coordinate
|
||||
to open.
|
||||
|
||||
| Mechanism | What it does |
|
||||
| --- | --- |
|
||||
| [dpf::wildcard_value](@ref dpf/wildcard.hpp) | Placeholder input or leaf. Eval throws until you assign. |
|
||||
| Leaf assign | `compute_and_get_blinded_output_share`, `reconstruct_correction_word`, `async_assign_leaf`, `assign_cmp` — see [wildcard assign](@ref wildcard_assign). |
|
||||
| [dpf::updatable](@ref dpf/placement.hpp) | Beaver leaf so a later rewrite replaces the payload without regenerating the spine. |
|
||||
| [dpf::ppvc](@ref ppvc_manual) | Point-programmable vector commitment: bind `(Z/2^s Z)^n`, then open one hidden coordinate (or the sum). |
|
||||
| [dpf::at](@ref dpf/placement.hpp) / `idpf` | Plant values on public prefixes as well as the leaf. |
|
||||
|
||||
```cpp
|
||||
auto [k0, k1] = dpf::make_dpf(
|
||||
std::uint8_t{12},
|
||||
dpf::wildcard_value<std::uint32_t>{});
|
||||
// assign the payload later; eval before assign throws
|
||||
|
||||
using scheme = dpf::ppvc<std::uint8_t, 8>;
|
||||
const auto pp = scheme::setup();
|
||||
const auto [com, st] = scheme::commit(pp);
|
||||
const auto op = scheme::open(st, 0, 0x5a, std::uint8_t{40});
|
||||
```
|
||||
|
||||
**Go deeper:** [guided tour — wildcards](@ref tour_outputs),
|
||||
[PPVC](@ref tour_ppvc), [PPVC manual](@ref ppvc_manual),
|
||||
[input types](@ref input_types), [output types](@ref output_types).
|
||||
Loading…
Add table
Add a link
Reference in a new issue