{"abstract":"Positions are allocated deeper than necessary or squeezed against digits that no longer bound them.","category":"CRDT convergence","checks":10,"contract":"Starting from the given sorted positions, positions are digit lists in base 10 compared lexicographically and never ending in 0. Inserting at list index i allocates between the neighbours p (or [] at the start) and q (or [] at the end): walking depth d, lower digit a is p[d] or 0, upper digit b is q[d] while q still constrains (else 10); if b - a > 1 append (a+b)//2 and stop, else append a, and q stops constraining once a < b. Return positions as dotted strings in list order.","contract_signature":"initial, inserts","evaluation_group":"w2-crdt-convergence-fractional-position-allocation","failed_approach":"Releasing only after the lower neighbour is exhausted keeps the stale bound for longer lower neighbours.","family":"w2-crdt-convergence-fractional-position-allocation-upper-release","id":"FA-75211","implementations":{"attempt":{"sha256":"4c7318862f851e89b640dd274646cec6625f119ec661e121947c7f5a2bd3cf2f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(initial, inserts):\n    BASE = 10\n    lst = [list(p) for p in initial]\n    def between(p, q):\n        out = []\n        upper = True\n        d = 0\n        while True:\n            a = p[d] if d < len(p) else 0\n            b = q[d] if upper and d < len(q) else BASE\n            if b - a > 1:\n                out.append((a + b) // 2)\n                return out\n            out.append(a)\n            if a < b and d + 1 >= len(p):\n                upper = False\n            d += 1\n    for i in inserts:\n        p = lst[i - 1] if i > 0 else []\n        q = lst[i] if i < len(lst) else []\n        lst.insert(i, between(p, q))\n    return ['.'.join(str(x) for x in pos) for pos in lst]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {\n    1: [('first insert', [[], [0]], ['5']), ('append repeatedly', [[], [0, 1, 2, 3, 4]], ['5', '7', '8', '9', '9.5']), ('prepend repeatedly', [[], [0, 0, 0, 0, 0]], ['0.2', '0.5', '1', '2', '5']), ('insert between adjacent digits', [[], [0, 1, 1, 1, 1]], ['5', '5.2', '5.5', '6', '7']), ('insert after a deep position', [[], [0, 1, 1, 1, 2, 2]], ['5', '5.5', '5.6', '5.7', '6', '7']), ('mixed positions', [[], [0, 0, 2]], ['2', '5', '7']), ('upper neighbour stops constraining after divergence', [[[3, 7], [4, 8]], [1]], ['3.7', '3.8', '4.8']), ('deep upper neighbour after a one-digit step', [[[2], [3, 1, 4]], [1, 1]], ['2', '2.2', '2.5', '3.1.4']), ('long lower neighbour below a deep upper neighbour', [[[1, 2, 9], [2, 0, 5]], [1]], ['1.2.9', '1.6', '2.0.5']), ('open end after high digits', [[[8], [9, 9]], [2, 3]], ['8', '9.9', '9.9.5', '9.9.7'])],\n    2: [('first insert', [[], [0]], ['5']), ('append repeatedly', [[], [0, 1, 2, 3, 4, 5]], ['5', '7', '8', '9', '9.5', '9.7']), ('prepend repeatedly', [[], [0, 0, 0, 0, 0, 0]], ['0.1', '0.2', '0.5', '1', '2', '5']), ('insert between adjacent digits', [[], [0, 1, 1, 1, 1]], ['5', '5.2', '5.5', '6', '7']), ('insert after a deep position', [[], [0, 1, 1, 1, 2, 2]], ['5', '5.5', '5.6', '5.7', '6', '7']), ('mixed positions', [[], [0, 0, 2, 1]], ['2', '3', '5', '7']), ('upper neighbour stops constraining after divergence', [[[3, 7], [4, 8]], [1]], ['3.7', '3.8', '4.8']), ('deep upper neighbour after a one-digit step', [[[2], [3, 1, 4]], [1, 1]], ['2', '2.2', '2.5', '3.1.4']), ('long lower neighbour below a deep upper neighbour', [[[1, 2, 9], [2, 0, 5]], [1, 1]], ['1.2.9', '1.4', '1.6', '2.0.5']), ('open end after high digits', [[[8], [9, 9]], [2, 3]], ['8', '9.9', '9.9.5', '9.9.7'])],\n    3: [('first insert', [[], [0]], ['5']), ('append repeatedly', [[], [0, 1, 2, 3, 4, 5, 6]], ['5', '7', '8', '9', '9.5', '9.7', '9.8']), ('prepend repeatedly', [[], [0, 0, 0, 0, 0, 0, 0]], ['0.0.5', '0.1', '0.2', '0.5', '1', '2', '5']), ('insert between adjacent digits', [[], [0, 1, 1, 1, 1]], ['5', '5.2', '5.5', '6', '7']), ('insert after a deep position', [[], [0, 1, 1, 1, 2, 2]], ['5', '5.5', '5.6', '5.7', '6', '7']), ('mixed positions', [[], [0, 0, 2, 1, 3]], ['2', '3', '5', '6', '7']), ('upper neighbour stops constraining after divergence', [[[3, 7], [4, 8]], [1]], ['3.7', '3.8', '4.8']), ('deep upper neighbour after a one-digit step', [[[2], [3, 1, 4]], [1, 1]], ['2', '2.2', '2.5', '3.1.4']), ('long lower neighbour below a deep upper neighbour', [[[1, 2, 9], [2, 0, 5]], [1, 1, 1]], ['1.2.9', '1.3', '1.4', '1.6', '2.0.5']), ('open end after high digits', [[[8], [9, 9]], [2, 3]], ['8', '9.9', '9.9.5', '9.9.7'])],\n    4: [('first insert', [[], [0]], ['5']), ('append repeatedly', [[], [0, 1, 2, 3, 4, 5, 6, 7]], ['5', '7', '8', '9', '9.5', '9.7', '9.8', '9.9']), ('prepend repeatedly', [[], [0, 0, 0, 0, 0, 0, 0, 0]], ['0.0.2', '0.0.5', '0.1', '0.2', '0.5', '1', '2', '5']), ('insert between adjacent digits', [[], [0, 1, 1, 1, 1]], ['5', '5.2', '5.5', '6', '7']), ('insert after a deep position', [[], [0, 1, 1, 1, 2, 2]], ['5', '5.5', '5.6', '5.7', '6', '7']), ('mixed positions', [[], [0, 0, 2, 1, 3, 2]], ['2', '3', '4', '5', '6', '7']), ('upper neighbour stops constraining after divergence', [[[3, 7], [4, 8]], [1]], ['3.7', '3.8', '4.8']), ('deep upper neighbour after a one-digit step', [[[2], [3, 1, 4]], [1, 1]], ['2', '2.2', '2.5', '3.1.4']), ('long lower neighbour below a deep upper neighbour', [[[1, 2, 9], [2, 0, 5]], [1, 1, 1, 1]], ['1.2.9', '1.2.9.5', '1.3', '1.4', '1.6', '2.0.5']), ('open end after high digits', [[[8], [9, 9]], [2, 3]], ['8', '9.9', '9.9.5', '9.9.7'])],\n    5: [('first insert', [[], [0]], ['5']), ('append repeatedly', [[], [0, 1, 2, 3, 4, 5, 6, 7, 8]], ['5', '7', '8', '9', '9.5', '9.7', '9.8', '9.9', '9.9.5']), ('prepend repeatedly', [[], [0, 0, 0, 0, 0, 0, 0, 0, 0]], ['0.0.1', '0.0.2', '0.0.5', '0.1', '0.2', '0.5', '1', '2', '5']), ('insert between adjacent digits', [[], [0, 1, 1, 1, 1]], ['5', '5.2', '5.5', '6', '7']), ('insert after a deep position', [[], [0, 1, 1, 1, 2, 2]], ['5', '5.5', '5.6', '5.7', '6', '7']), ('mixed positions', [[], [0, 0, 2, 1, 3, 2, 1]], ['2', '2.5', '3', '4', '5', '6', '7']), ('upper neighbour stops constraining after divergence', [[[3, 7], [4, 8]], [1]], ['3.7', '3.8', '4.8']), ('deep upper neighbour after a one-digit step', [[[2], [3, 1, 4]], [1, 1]], ['2', '2.2', '2.5', '3.1.4']), ('long lower neighbour below a deep upper neighbour', [[[1, 2, 9], [2, 0, 5]], [1, 1, 1, 1, 1]], ['1.2.9', '1.2.9.2', '1.2.9.5', '1.3', '1.4', '1.6', '2.0.5']), ('open end after high digits', [[[8], [9, 9]], [2, 3]], ['8', '9.9', '9.9.5', '9.9.7'])],\n}[N]\nfor label, args, expected in cases:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"01d57eecaf6f609be39804d93d139cb59e88dadeb4fa5020922e836765c0d218","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(initial, inserts):\n    BASE = 10\n    lst = [list(p) for p in initial]\n    def between(p, q):\n        out = []\n        upper = True\n        d = 0\n        while True:\n            a = p[d] if d < len(p) else 0\n            b = q[d] if upper and d < len(q) else BASE\n            if b - a > 1:\n                out.append((a + b) // 2)\n                return out\n            out.append(a)\n            d += 1\n    for i in inserts:\n        p = lst[i - 1] if i > 0 else []\n        q = lst[i] if i < len(lst) else []\n        lst.insert(i, between(p, q))\n    return ['.'.join(str(x) for x in pos) for pos in lst]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {\n    1: [('first insert', [[], [0]], ['5']), ('append repeatedly', [[], [0, 1, 2, 3, 4]], ['5', '7', '8', '9', '9.5']), ('prepend repeatedly', [[], [0, 0, 0, 0, 0]], ['0.2', '0.5', '1', '2', '5']), ('insert between adjacent digits', [[], [0, 1, 1, 1, 1]], ['5', '5.2', '5.5', '6', '7']), ('insert after a deep position', [[], [0, 1, 1, 1, 2, 2]], ['5', '5.5', '5.6', '5.7', '6', '7']), ('mixed positions', [[], [0, 0, 2]], ['2', '5', '7']), ('upper neighbour stops constraining after divergence', [[[3, 7], [4, 8]], [1]], ['3.7', '3.8', '4.8']), ('deep upper neighbour after a one-digit step', [[[2], [3, 1, 4]], [1, 1]], ['2', '2.2', '2.5', '3.1.4']), ('long lower neighbour below a deep upper neighbour', [[[1, 2, 9], [2, 0, 5]], [1]], ['1.2.9', '1.6', '2.0.5']), ('open end after high digits', [[[8], [9, 9]], [2, 3]], ['8', '9.9', '9.9.5', '9.9.7'])],\n    2: [('first insert', [[], [0]], ['5']), ('append repeatedly', [[], [0, 1, 2, 3, 4, 5]], ['5', '7', '8', '9', '9.5', '9.7']), ('prepend repeatedly', [[], [0, 0, 0, 0, 0, 0]], ['0.1', '0.2', '0.5', '1', '2', '5']), ('insert between adjacent digits', [[], [0, 1, 1, 1, 1]], ['5', '5.2', '5.5', '6', '7']), ('insert after a deep position', [[], [0, 1, 1, 1, 2, 2]], ['5', '5.5', '5.6', '5.7', '6', '7']), ('mixed positions', [[], [0, 0, 2, 1]], ['2', '3', '5', '7']), ('upper neighbour stops constraining after divergence', [[[3, 7], [4, 8]], [1]], ['3.7', '3.8', '4.8']), ('deep upper neighbour after a one-digit step', [[[2], [3, 1, 4]], [1, 1]], ['2', '2.2', '2.5', '3.1.4']), ('long lower neighbour below a deep upper neighbour', [[[1, 2, 9], [2, 0, 5]], [1, 1]], ['1.2.9', '1.4', '1.6', '2.0.5']), ('open end after high digits', [[[8], [9, 9]], [2, 3]], ['8', '9.9', '9.9.5', '9.9.7'])],\n    3: [('first insert', [[], [0]], ['5']), ('append repeatedly', [[], [0, 1, 2, 3, 4, 5, 6]], ['5', '7', '8', '9', '9.5', '9.7', '9.8']), ('prepend repeatedly', [[], [0, 0, 0, 0, 0, 0, 0]], ['0.0.5', '0.1', '0.2', '0.5', '1', '2', '5']), ('insert between adjacent digits', [[], [0, 1, 1, 1, 1]], ['5', '5.2', '5.5', '6', '7']), ('insert after a deep position', [[], [0, 1, 1, 1, 2, 2]], ['5', '5.5', '5.6', '5.7', '6', '7']), ('mixed positions', [[], [0, 0, 2, 1, 3]], ['2', '3', '5', '6', '7']), ('upper neighbour stops constraining after divergence', [[[3, 7], [4, 8]], [1]], ['3.7', '3.8', '4.8']), ('deep upper neighbour after a one-digit step', [[[2], [3, 1, 4]], [1, 1]], ['2', '2.2', '2.5', '3.1.4']), ('long lower neighbour below a deep upper neighbour', [[[1, 2, 9], [2, 0, 5]], [1, 1, 1]], ['1.2.9', '1.3', '1.4', '1.6', '2.0.5']), ('open end after high digits', [[[8], [9, 9]], [2, 3]], ['8', '9.9', '9.9.5', '9.9.7'])],\n    4: [('first insert', [[], [0]], ['5']), ('append repeatedly', [[], [0, 1, 2, 3, 4, 5, 6, 7]], ['5', '7', '8', '9', '9.5', '9.7', '9.8', '9.9']), ('prepend repeatedly', [[], [0, 0, 0, 0, 0, 0, 0, 0]], ['0.0.2', '0.0.5', '0.1', '0.2', '0.5', '1', '2', '5']), ('insert between adjacent digits', [[], [0, 1, 1, 1, 1]], ['5', '5.2', '5.5', '6', '7']), ('insert after a deep position', [[], [0, 1, 1, 1, 2, 2]], ['5', '5.5', '5.6', '5.7', '6', '7']), ('mixed positions', [[], [0, 0, 2, 1, 3, 2]], ['2', '3', '4', '5', '6', '7']), ('upper neighbour stops constraining after divergence', [[[3, 7], [4, 8]], [1]], ['3.7', '3.8', '4.8']), ('deep upper neighbour after a one-digit step', [[[2], [3, 1, 4]], [1, 1]], ['2', '2.2', '2.5', '3.1.4']), ('long lower neighbour below a deep upper neighbour', [[[1, 2, 9], [2, 0, 5]], [1, 1, 1, 1]], ['1.2.9', '1.2.9.5', '1.3', '1.4', '1.6', '2.0.5']), ('open end after high digits', [[[8], [9, 9]], [2, 3]], ['8', '9.9', '9.9.5', '9.9.7'])],\n    5: [('first insert', [[], [0]], ['5']), ('append repeatedly', [[], [0, 1, 2, 3, 4, 5, 6, 7, 8]], ['5', '7', '8', '9', '9.5', '9.7', '9.8', '9.9', '9.9.5']), ('prepend repeatedly', [[], [0, 0, 0, 0, 0, 0, 0, 0, 0]], ['0.0.1', '0.0.2', '0.0.5', '0.1', '0.2', '0.5', '1', '2', '5']), ('insert between adjacent digits', [[], [0, 1, 1, 1, 1]], ['5', '5.2', '5.5', '6', '7']), ('insert after a deep position', [[], [0, 1, 1, 1, 2, 2]], ['5', '5.5', '5.6', '5.7', '6', '7']), ('mixed positions', [[], [0, 0, 2, 1, 3, 2, 1]], ['2', '2.5', '3', '4', '5', '6', '7']), ('upper neighbour stops constraining after divergence', [[[3, 7], [4, 8]], [1]], ['3.7', '3.8', '4.8']), ('deep upper neighbour after a one-digit step', [[[2], [3, 1, 4]], [1, 1]], ['2', '2.2', '2.5', '3.1.4']), ('long lower neighbour below a deep upper neighbour', [[[1, 2, 9], [2, 0, 5]], [1, 1, 1, 1, 1]], ['1.2.9', '1.2.9.2', '1.2.9.5', '1.3', '1.4', '1.6', '2.0.5']), ('open end after high digits', [[[8], [9, 9]], [2, 3]], ['8', '9.9', '9.9.5', '9.9.7'])],\n}[N]\nfor label, args, expected in cases:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic, bounded teaching model of one replicated data type with stipulated operation and merge rules; it is not a production CRDT library and makes no claim of conformance to any specific published design. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-crdt-convergence-fractional-position-allocation-upper-release","generated_at":"2026-09-29T14:49:04.161401+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Sequence CRDTs such as Logoot and LSEQ assign dense identifiers so that concurrent inserts never need renumbering.","root_cause":"Once a digit strictly below q's digit is chosen, q still bounds deeper digits.","sha256":"db4d043cb8920534c8c58455962a343e85356e3ba6e326ae1cd5a9f6538c5f01","title":"Fractional position allocation: the upper neighbour keeps constraining after the prefix diverges · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":43.41,"exit_code":1,"observations":[{"actual":["5"],"check":"first insert","expected":["5"],"passed":true},{"actual":["5","7","8","9","9.5"],"check":"append repeatedly","expected":["5","7","8","9","9.5"],"passed":true},{"actual":["0.2","0.5","1","2","5"],"check":"prepend repeatedly","expected":["0.2","0.5","1","2","5"],"passed":true},{"actual":["5","5.2","5.5","6","7"],"check":"insert between adjacent digits","expected":["5","5.2","5.5","6","7"],"passed":true},{"actual":["5","5.5","5.6","5.7","6","7"],"check":"insert after a deep position","expected":["5","5.5","5.6","5.7","6","7"],"passed":true},{"actual":["2","5","7"],"check":"mixed positions","expected":["2","5","7"],"passed":true},{"actual":["3.7","3.7.5","4.8"],"check":"upper neighbour stops constraining after divergence","expected":["3.7","3.8","4.8"],"passed":false},{"actual":["2","2.2","2.5","3.1.4"],"check":"deep upper neighbour after a one-digit step","expected":["2","2.2","2.5","3.1.4"],"passed":true},{"actual":["1.2.9","1.2.9.5","2.0.5"],"check":"long lower neighbour below a deep upper neighbour","expected":["1.2.9","1.6","2.0.5"],"passed":false},{"actual":["8","9.9","9.9.5","9.9.7"],"check":"open end after high digits","expected":["8","9.9","9.9.5","9.9.7"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"first insert\", \"actual\": [\"5\"], \"expected\": [\"5\"], \"passed\": true}, {\"check\": \"append repeatedly\", \"actual\": [\"5\", \"7\", \"8\", \"9\", \"9.5\"], \"expected\": [\"5\", \"7\", \"8\", \"9\", \"9.5\"], \"passed\": true}, {\"check\": \"prepend repeatedly\", \"actual\": [\"0.2\", \"0.5\", \"1\", \"2\", \"5\"], \"expected\": [\"0.2\", \"0.5\", \"1\", \"2\", \"5\"], \"passed\": true}, {\"check\": \"insert between adjacent digits\", \"actual\": [\"5\", \"5.2\", \"5.5\", \"6\", \"7\"], \"expected\": [\"5\", \"5.2\", \"5.5\", \"6\", \"7\"], \"passed\": true}, {\"check\": \"insert after a deep position\", \"actual\": [\"5\", \"5.5\", \"5.6\", \"5.7\", \"6\", \"7\"], \"expected\": [\"5\", \"5.5\", \"5.6\", \"5.7\", \"6\", \"7\"], \"passed\": true}, {\"check\": \"mixed positions\", \"actual\": [\"2\", \"5\", \"7\"], \"expected\": [\"2\", \"5\", \"7\"], \"passed\": true}, {\"check\": \"upper neighbour stops constraining after divergence\", \"actual\": [\"3.7\", \"3.7.5\", \"4.8\"], \"expected\": [\"3.7\", \"3.8\", \"4.8\"], \"passed\": false}, {\"check\": \"deep upper neighbour after a one-digit step\", \"actual\": [\"2\", \"2.2\", \"2.5\", \"3.1.4\"], \"expected\": [\"2\", \"2.2\", \"2.5\", \"3.1.4\"], \"passed\": true}, {\"check\": \"long lower neighbour below a deep upper neighbour\", \"actual\": [\"1.2.9\", \"1.2.9.5\", \"2.0.5\"], \"expected\": [\"1.2.9\", \"1.6\", \"2.0.5\"], \"passed\": false}, {\"check\": \"open end after high digits\", \"actual\": [\"8\", \"9.9\", \"9.9.5\", \"9.9.7\"], \"expected\": [\"8\", \"9.9\", \"9.9.5\", \"9.9.7\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.992,"exit_code":1,"observations":[{"actual":["5"],"check":"first insert","expected":["5"],"passed":true},{"actual":["5","7","8","9","9.5"],"check":"append repeatedly","expected":["5","7","8","9","9.5"],"passed":true},{"actual":["0.2","0.5","1","2","5"],"check":"prepend repeatedly","expected":["0.2","0.5","1","2","5"],"passed":true},{"actual":["5","5.2","5.5","6","7"],"check":"insert between adjacent digits","expected":["5","5.2","5.5","6","7"],"passed":true},{"actual":["5","5.5","5.6","5.7","6","7"],"check":"insert after a deep position","expected":["5","5.5","5.6","5.7","6","7"],"passed":true},{"actual":["2","5","7"],"check":"mixed positions","expected":["2","5","7"],"passed":true},{"actual":["3.7","3.7.5","4.8"],"check":"upper neighbour stops constraining after divergence","expected":["3.7","3.8","4.8"],"passed":false},{"actual":["2","2.0.1","2.0.2","3.1.4"],"check":"deep upper neighbour after a one-digit step","expected":["2","2.2","2.5","3.1.4"],"passed":false},{"actual":["1.2.9","1.2.9.5","2.0.5"],"check":"long lower neighbour below a deep upper neighbour","expected":["1.2.9","1.6","2.0.5"],"passed":false},{"actual":["8","9.9","9.9.5","9.9.7"],"check":"open end after high digits","expected":["8","9.9","9.9.5","9.9.7"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"first insert\", \"actual\": [\"5\"], \"expected\": [\"5\"], \"passed\": true}, {\"check\": \"append repeatedly\", \"actual\": [\"5\", \"7\", \"8\", \"9\", \"9.5\"], \"expected\": [\"5\", \"7\", \"8\", \"9\", \"9.5\"], \"passed\": true}, {\"check\": \"prepend repeatedly\", \"actual\": [\"0.2\", \"0.5\", \"1\", \"2\", \"5\"], \"expected\": [\"0.2\", \"0.5\", \"1\", \"2\", \"5\"], \"passed\": true}, {\"check\": \"insert between adjacent digits\", \"actual\": [\"5\", \"5.2\", \"5.5\", \"6\", \"7\"], \"expected\": [\"5\", \"5.2\", \"5.5\", \"6\", \"7\"], \"passed\": true}, {\"check\": \"insert after a deep position\", \"actual\": [\"5\", \"5.5\", \"5.6\", \"5.7\", \"6\", \"7\"], \"expected\": [\"5\", \"5.5\", \"5.6\", \"5.7\", \"6\", \"7\"], \"passed\": true}, {\"check\": \"mixed positions\", \"actual\": [\"2\", \"5\", \"7\"], \"expected\": [\"2\", \"5\", \"7\"], \"passed\": true}, {\"check\": \"upper neighbour stops constraining after divergence\", \"actual\": [\"3.7\", \"3.7.5\", \"4.8\"], \"expected\": [\"3.7\", \"3.8\", \"4.8\"], \"passed\": false}, {\"check\": \"deep upper neighbour after a one-digit step\", \"actual\": [\"2\", \"2.0.1\", \"2.0.2\", \"3.1.4\"], \"expected\": [\"2\", \"2.2\", \"2.5\", \"3.1.4\"], \"passed\": false}, {\"check\": \"long lower neighbour below a deep upper neighbour\", \"actual\": [\"1.2.9\", \"1.2.9.5\", \"2.0.5\"], \"expected\": [\"1.2.9\", \"1.6\", \"2.0.5\"], \"passed\": false}, {\"check\": \"open end after high digits\", \"actual\": [\"8\", \"9.9\", \"9.9.5\", \"9.9.7\"], \"expected\": [\"8\", \"9.9\", \"9.9.5\", \"9.9.7\"], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}