open-standards/wai/live-conformance/synthesis
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 7f08895096 synthesis.md §7: the registered scheme wai-mark:tent64, what it survives, its signpost and resolver; the second implementations
§7.4 registers wai-mark:tent64 by its definition and digest and keeps
wai-mark:conformance as the scheme with no algorithm. §7.5 is the scheme: frames
and luma, the grid and the tent pattern, the stream, the shuffle, the signs and
the mask, the shortened BCH code, the informed embedding, the detector in eight
orientations, what it guarantees (no other channel, a PSNR floor, a
false-positive bound derived and checked), the battery and the table of what it
survives, with the claims it makes. §7.6 proves a marking by recomputation and
reproduces a detection; §7.7 gives the signpost in the content and in the C2PA
statement, and a well-known resolver; §7.8 has a sink that generates mark as part
of the reconstruction it is held to. _wai_mark.py is the scheme and the battery
in Python from the text; synthesis_verify.py runs §7.6's checks with it;
synthesis_mark_verify.py verifies the scheme's corpus, mutates it and weakens
itself in turn.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 13:25:42 -04:00
..
README.md wai.media.synthesis: origin claims for every kind of media, two marking layers, reviews and labels 2026-10-21 05:17:43 -04:00
vectors.json synthesis.md §7: the registered scheme wai-mark:tent64, what it survives, its signpost and resolver; the second implementations 2026-10-21 13:25:42 -04:00

live-conformance/synthesis — synthesis provenance

The corpus of extensions/synthesis.md §13, in one file, vectors.json: the EU icons §10.2 pins (eu_icons, each its file and sha256), and the vectors, each a case of §11.1 and what a verifier gives it.

A case holds its policy (dual_layer, assistive); its records as JSON texts, list by list: claims (origin claims), markings, detections, reviews, label_policy (a text or null) and player (the log's entries); the objects it holds, each a WAI1 envelope in hexadecimal; the decoded samples it holds, each the content hash of the object decoded and its canonical samples in hexadecimal; and a room or null: its descriptor, grants, key_log and chains as live-rooms' corpus gives them.

Synthesis equivalence. For each vector, a conforming verifier reaches the outcome it states:

  • refuse: the reason and where, at: ["claim", i], ["marking", i], ["detection", i], ["review", i], ["label_policy"], ["player", i], or ["room", …] with the room verifier's own place (["room", "record", c, i] for record i of chain c);
  • accept: the statements of §11.3: claims, each its link, class, source, c2pa (the statement of §6, exactly as written) and assistive (proved, not-recomputed, asserted, or null for a claim that is not an assist); detections, each its subject and result; ai_tracks, each its track and claim; reviews_presented, each its log entry and review; labels, each its log entry, trigger and the shown entry that met it; visual_icon, the file of §10.2 the label policy's visual is, or null; and room, the room's own outcome or null.

A verifier that reaches another outcome, reason, place or statement does not conform.

Provenance. wai_synthesis_vectors gen writes vectors.json from records authored in code: every key is SHA-256 of the corpus's label and an index, every sample buffer and envelope payload is SHA-256 output of a label, every time is a constant, and Ed25519 signing is deterministic, so the file is the same bytes on every machine. The watermark scheme the markings and detections name, wai-mark:conformance, names no algorithm (§7.4): the corpus exercises the records and the agreement of the two layers, not a watermark.

python3 -I ../synthesis_verify.py .