{ "expectation": "Column-slot permutation satisfies stable-block/gap/index invariants; recomputed ranks remain exact.", "method": "All permutations and set partitions through n=5; every nonempty subset and raw column gap. Every directed simple graph on 4 IDs, all 24 step permutations, all admitted subsets/gaps. No Rust, source serializer, or GUI exercised.", "passed": true, "counts": { "propertyCases": 214990, "crossColumnRefusals": 140024, "noops": 127950, "graphOrders": 98304, "rankCheckedPlans": 861096 }, "concrete": [ { "name": "interleaved visual no-op", "steps": [ "a", "u", "b", "v", "c" ], "ranks": { "a": 0, "b": 0, "c": 0, "u": 1, "v": 1 }, "selected": [ "c", "b" ], "rawGap": 1, "result": [ "a", "u", "b", "v", "c" ], "changed": false }, { "name": "column slot move preserves other indices", "steps": [ "a", "u", "b", "v", "c" ], "ranks": { "a": 0, "b": 0, "c": 0, "u": 1, "v": 1 }, "selected": [ "c", "b" ], "rawGap": 0, "result": [ "b", "u", "c", "v", "a" ], "changed": true }, { "name": "selected-anchor normalization is not always no-op", "steps": [ "a", "b", "c", "d" ], "ranks": { "a": 0, "b": 0, "c": 0, "d": 0 }, "selected": [ "b", "d" ], "rawGap": 3, "result": [ "a", "c", "b", "d" ], "changed": true }, { "name": "legacy successive-rank refusal", "steps": [ "a", "b", "c" ], "ranks": { "a": 0, "b": 1, "c": 2 }, "selected": [ "a", "c" ], "rawGap": 0, "result": null, "changed": false }, { "name": "cycle fallback group refusal", "steps": [ 0, 1, 2, 3 ], "ranks": { "0": 0, "1": 0, "2": 1, "3": 2 }, "selected": [ 2, 3 ], "rawGap": 0, "result": null, "changed": false }, { "name": "acyclic peers beside cycle", "steps": [ 0, 1, 2, 3 ], "ranks": { "0": 0, "1": 0, "2": 1, "3": 2 }, "selected": [ 1 ], "rawGap": 0, "result": [ 1, 0, 2, 3 ], "changed": true }, { "name": "changed multiple-member group beside cycle", "steps": [ "a", "u", "b", "v", "c" ], "ranks": { "a": 0, "u": 1, "b": 0, "v": 2, "c": 0 }, "selected": [ "c", "b" ], "rawGap": 0, "result": [ "b", "u", "c", "v", "a" ], "changed": true } ] }