-
-
Notifications
You must be signed in to change notification settings - Fork 1
Audit per-axis lattices for structural-vs-lattice Eq mismatches (PR 4b-D.2 D24 follow-up) #528
Copy link
Copy link
Labels
EPIC-LatticeAddressed by Epic for lattice refactor (5-2-26 plan)Addressed by Epic for lattice refactor (5-2-26 plan)capco/ismCAPCO classification markings, ODNI ISM schema, and the marque-capco / marque-ism rule chainCAPCO classification markings, ODNI ISM schema, and the marque-capco / marque-ism rule chaincorrectnessRule predicates, citation fidelity, audit integrity (Constitution VIII source fidelity)Rule predicates, citation fidelity, audit integrity (Constitution VIII source fidelity)latticeissues and PRs related to the lattice architecture and mathematical correctnessissues and PRs related to the lattice architecture and mathematical correctnesspost-refactorThing that can wait until after the current big refactorThing that can wait until after the current big refactor
Milestone
Metadata
Metadata
Assignees
Labels
EPIC-LatticeAddressed by Epic for lattice refactor (5-2-26 plan)Addressed by Epic for lattice refactor (5-2-26 plan)capco/ismCAPCO classification markings, ODNI ISM schema, and the marque-capco / marque-ism rule chainCAPCO classification markings, ODNI ISM schema, and the marque-capco / marque-ism rule chaincorrectnessRule predicates, citation fidelity, audit integrity (Constitution VIII source fidelity)Rule predicates, citation fidelity, audit integrity (Constitution VIII source fidelity)latticeissues and PRs related to the lattice architecture and mathematical correctnessissues and PRs related to the lattice architecture and mathematical correctnesspost-refactorThing that can wait until after the current big refactorThing that can wait until after the current big refactor
Type
Fields
Give feedbackNo fields configured for Bug.
PR 4b-D.2 commit 11 (decisions.md D24) dropped
impl JoinSemilattice for CapcoMarking+impl MeetSemilattice for CapcoMarkingafter Copilot R1 surfaced an idempotence-law violation driven byRelToBlock's tetragraph expansion. The lattice consultant's verdict was Option D-extended: cross-axis folds are projections, not lattice ops; the lattice claim moves to the per-axis types.The D24 fix is surgical — it removes the false claim at the cross-axis layer. The remaining per-axis types still need a systematic audit for the same structural-vs-lattice-
Eqmismatch pattern. PR #456 already splitLatticeintoJoinSemilattice + MeetSemilatticehalves and identified several per-axis types as carrying observational state:The systematic-audit question this issue tracks:
DissemSet::relido_observed_unanimous: does this flag survivejoin(a, a) == aon the join side? PR marque-scheme: split Lattice into JoinSemilattice+MeetSemilattice OR weaken DissemSet/JointSet trait impls #456 retired the meet impl; the join side needs proptest coverage analogous to the newRelToBlocklaws incrates/capco/tests/proptest_lattice.rs.JointSet::Mixed/DisunityCollapse: do these variants preserve idempotence on structuralEq?DisunityCollapsecarries a non-US producer set; iffrom_attrs_iternormalizes the producer list, the same expand-on-construct hazardRelToBlockhad may apply.SupersessionSet: the post-join overlay state — does the overlay re-application onjoin(a, a)produce structurally-equal output? Or does the overlay introduce a non-idempotent transformation that's hidden by the current test surface (only covered in fixed-sample tests, no proptests)?Acceptance criteria
For each of the three per-axis types above:
crates/capco/tests/proptest_lattice.rscovering the join laws (idempotence/commutativity/associativity) on the type's own structuralEq.Eqimpl that ignores the observational state for the lattice claim, or (c) a documented "this is not actually a lattice — drop the impl per D24 precedent" verdict.Related
marque-applied.md§3 (PR 3b stall walkthrough — the framing this issue extends)crates/capco/tests/proptest_lattice.rs::rel_to_*(the proptest template the audit should follow)Scope notes
CapcoMarkingitself (resolved by D24).