Skip to content

docs+formal: dev roadmap, ADRs 0020–0023, proved Lean authority model + TLA+ store#236

Merged
hartsock merged 1 commit into
mainfrom
docs/roadmap-adrs-formal
Jul 17, 2026
Merged

docs+formal: dev roadmap, ADRs 0020–0023, proved Lean authority model + TLA+ store#236
hartsock merged 1 commit into
mainfrom
docs/roadmap-adrs-formal

Conversation

@hartsock

Copy link
Copy Markdown
Member

What this PR adds

Post-ratification deliverables (author-approved) following the v0.3.1 spec merge (#229):

  • docs/spec/ROADMAP.md — phased development plan: Phase 0 scaffold → Phase 1 prove the waist (P1→P2→P0, MVP) → 2 ceremonies → 3 client libs → 4 BVP store. Clear decided/held gate; per-phase exit criteria.
  • ADRs 0020–0023 — the frozen decisions recorded: authority product-lattice (OB-12), append CAS→BVP (OB-15), signed-object grammar (OB-13/14), three-tier proof discipline.
  • formal/lean/Authority.lean — mathlib-free, compiles clean (exit 0), 25 theorems, 0 sorry: meet laws, attenuation (L4/PO-4), no-fail-open (OB-9/OB-12), order-independence (L1/PO-1). The algebra half of the freeze, machine-checked.
  • formal/tla/CeremonyStore.tla — CAS append + anti-rollback state machine; invariants map to PO-2/2a/2c + OB-15/OB-16.
  • formal/README.md — how to check both models, and why two tools.

Test plan

  • lean formal/lean/Authority.lean → exit 0, no sorry (25 theorems).
  • TLA+ module is TLC-checkable (small-bound state constraint); Toolbox/tla2tools.
  • Docs/formal only — no code behavior; nonbinding formal spikes per review-7.

Out of scope / held

  • Rust structs, serialized records, stored signatures, cross-language APIs — HELD until Phase-1d conformance vectors exist.
  • The BVP wedge model (Phase 4) — its own ADR + TLA+/Lean before normative.

Refs #229 (merged spec), review round 7.

…ty model (proved) + TLA+ store

Post-ratification deliverables (author-approved).

- docs/spec/ROADMAP.md — phased development plan (Phase 0 scaffold → 1 prove
  the waist P1→P2→P0 → 2 ceremonies → 3 client libs → 4 BVP store), with the
  decided/held gate and per-phase exit criteria.
- ADR 0020 — Authority = Effect × Assurance × Scope (product meet-lattice);
  rejects the linear verdict lattice. OB-12.
- ADR 0021 — store append CAS now, Byzantine Vertical Paxos next (wedge/
  reconfiguration; ref Abraham-Malkhi DCCL / Lamport-Malkhi-Zhou). OB-15.
- ADR 0022 — signed-object grammar: one constructor, protected tuple, genesis
  STORE_ID_SELF. OB-13/OB-14.
- ADR 0023 — the three-tier proof discipline (Lean+Aeneas / Tamarin-ProVerif /
  assumed crypto + conformance vectors).
- formal/lean/Authority.lean — mathlib-free, COMPILES (exit 0), 25 theorems,
  0 sorry: meet laws, attenuation (L4/PO-4), no-fail-open (OB-9/OB-12),
  order-independence (L1/PO-1). The Tier-3 algebra half, machine-checked.
- formal/tla/CeremonyStore.tla — CAS append + anti-rollback state machine;
  invariants map to PO-2/2a/2c + OB-15/OB-16 (CAS-loser benign; checkpoint
  monotone; no rollback).
- formal/README.md — how to check both, and why two tools.

Nonbinding formal spikes per review-7; no wire structs frozen. Merge/implement
of code remains gated on conformance vectors (Phase 1d).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@hartsock hartsock added the documentation Improvements or additions to documentation label Jul 17, 2026
@hartsock
hartsock merged commit ebb5f37 into main Jul 17, 2026
10 checks passed
hartsock added a commit that referenced this pull request Jul 17, 2026
0.7.5 ships: L3 device sinks — /dev/null|zero|full always write-openable
in the Landlock + Seatbelt jails (#234, newt#1220; confined git fetch
works again) — and the docs/formal wave: dev roadmap, ADRs 0020-0023,
the proved Lean authority model + TLA+ store (#236).

Co-authored-by: Shawn Hartsock <hartsock@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant