open-standards/wai/live-conformance/synthesis/README.md
Transaction Science 03117478c4 wai.media.synthesis: origin claims for every kind of media, two marking layers, reviews and labels
extensions/synthesis.md: the origin claim of an object, a group or a track (captured,
reconstructed, assistive, synthesized; the class rises along a chain of derivations and
never falls), its IPTC digital source type and C2PA statement as functions of the claim,
two pinned integer derivations whose recomputation proves an assistive claim, the marking
and detection records of the second layer and their agreement with the first, AI
participants' tracks, reviews a player presents only on a decode path of the review's
tier, and a player's signed label log with the EU icons pinned by digest. The wai-rs
module (feature `synthesis`), its vectors generator and the corpus.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 05:17:43 -04:00

2.4 KiB

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 .