joy proves itself

yesterday the harness shipped. today the proofs got small — really small.

zheng 0.3.0 gave every proof one shape: a universal group plus an optional binding group, whatever the program. 0.3.1 dropped the query symbols nobody was reading off the wire. the result, for the same programs:

program before after
hello 1.3 KB
two secrets 1.4 KB
hash 2.4 KB
merkle-32 2.67 MB 2.6 KB

a thousand-times shrink for the merkle-32 case, from cutting bytes that were never checked in the first place. joy 0.3.0 carries its own deflated assembly now, so joy verify <artifact> and trident verify both work standing alone — no bundle, no companion files, no build machine to trust.

cutting unread bytes is real work. it is not the same work as proving the bytes that remain are bound to anything — lens issue #6 is open precisely because the query symbols weren't checked against the commitment yet. that's a different fix, and it's already underway. more on it in a few days, once it's finished honestly.

run it yourself: joy on github