Implementation plan and status
This RFD is a draft. Checked items represent design or implementation work which has landed together with tests and documentation.
Phase 1: Progress algebra
- Define distinct sufficient-answer and necessary-envelope types.
- Define the envelope implication and monotone-strengthening laws.
- Define aggregation across live, completed, failed, ambiguous, incomplete, and overflowed alternatives.
- Decide whether envelopes carry substitutions only or general residual conditions.
- Specify universe handling and canonical response-variable normalization.
Phase 2: Incremental reduction
- Define stable candidate identities and revisioned progress slots.
- Select an order-independent strategy for online subsumption and cancelled answer evidence.
- Specify which progress may become a caller hard hint.
- Specify frame-level provisional summaries and subscriber wake behavior.
- Prove that recursive consumers cannot observe unsoundly subsumed provisional answers.
Phase 3: Implementation
- Add producer-owned candidate progress slots.
- Publish an initial envelope after candidate head matching.
- Publish stronger envelopes after useful nested progress.
- Derive aggregate frame progress and wake interested subscribers.
- Cancel branches only with a retained dominance certificate.
- Keep the final frame response single-shot and canonical.
Phase 4: Verification
- Test monotone candidate and aggregate revisions.
-
Test incomplete sources force the aggregate envelope to
true. - Test shared constructors survive anti-unification while divergent leaves are generalized.
- Test conditional answers cancel only fully covered pending branches.
- Test speculative candidate substitutions never leak.
- Permute candidate progress and completion order and assert identical final query results.
- Add recursive-answer-subsumption tests required by the accepted cycle model.
-
Update
md/design/trait-solver.mdwith the accepted publication model.