200 lines
3.3 KiB
JSON
200 lines
3.3 KiB
JSON
{
|
|
"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
|
|
}
|
|
]
|
|
}
|