docs(adr): ADR 009 is accepted; Z-set weights are checked i64 and the group is partial (improvise-felo.4)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
This commit is contained in:
Claude (adr009-zset-amend)
2026-10-10 11:14:46 -07:00
committed by Edward Langley
parent d1665f6499
commit 52453ca785
+6 -2
View File
@@ -1,6 +1,6 @@
# ADR 009 — Incremental evaluation: an in-house DBSP core, plugged in behind a trait
**Status:** proposed. ·
**Status:** accepted. ·
**Ticket:** improvise-felo.4 (the record of this ADR; implementation goes to its own
epic) ·
**Relates to:** ADR 001 (the basis a write claims), ADR 002 (surrogates on the wire),
@@ -29,7 +29,11 @@ mutation, it says so and names the incremental path that normally applies.
A problem-agnostic workspace crate with no dependencies beyond `std` (so it is
wasm32-clean and serde-free). It provides:
- `ZSet<K>`, a map from `K: Ord` to a non-zero `i64` weight, which is an abelian group;
- `ZSet<K>`, a map from `K: Ord` to a non-zero `i64` weight. Weight arithmetic is checked
and panics on overflow, in debug and in release. The group laws are exact wherever no
weight, intermediate ones included, leaves `i64`, so the structure is an abelian group
that is partial at the `i64` boundary. Weights are validated where deltas enter from
the wire (clause 9), so a hostile frame is rejected and never reaches the panic;
- a synchronous, single-threaded `Circuit` per process, with `delay`, `integrate`,
`differentiate`, `map`, `filter`, `flat_map`, `index_by`, the bilinear delta join
`join_indexed`, `distinct` and `aggregate`;