Merge branch 'clean-zset' into clean-derived

This commit is contained in:
Claude (adr009-clean)
2026-10-10 11:21:58 -07:00
committed by Edward Langley
+2 -6
View File
@@ -1,6 +1,6 @@
# ADR 009 — Incremental evaluation: an in-house DBSP core, plugged in behind a trait
**Status:** accepted. ·
**Status:** proposed. ·
**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,11 +29,7 @@ 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. 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;
- `ZSet<K>`, a map from `K: Ord` to a non-zero `i64` weight, which is an abelian group;
- 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`;