{"abstract":"Folded ranks grow with the value of displaced bits rather than with leading zeros.","category":"Probabilistic sketches","checks":7,"contract":"Input {a, b}, each {p, regs}. Both sketches are folded to q = min precision. Folding from p to q with d = p - q maps register j to j >> d; if the low d bits of j are non-zero they become the leading bits of the new remainder, giving rank d - bitlen(low) + 1, otherwise the rank is r + d. Empty registers contribute nothing. The merged sketch is the element-wise maximum. Return [q, regs].","evaluation_group":"w2-probabilistic_sketches-hll-precision-fold","failed_approach":"Dropping the +1 counts leading zeros without the terminating one bit.","family":"w2-probabilistic_sketches-hll-precision-fold-low-bit-rank","id":"FA-73026","implementations":{"attempt":{"sha256":"14532bbdae98bfce1185cdeb5a0b3d523f05c90ee622b3161f9feae491983d55","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    def fold(sk, q):\n        d = sk['p'] - q\n        out = [0] * (1 << q)\n        for j, r in enumerate(sk['regs']):\n            if r == 0:\n                continue\n            nj = j >> d\n            low = j & ((1 << d) - 1)\n            if low != 0:\n                nr = d - low.bit_length()\n            else:\n                nr = r + d\n            out[nj] = max(out[nj], nr)\n        return out\n    q = min(x['a']['p'], x['b']['p'])\n    fa = fold(x['a'], q)\n    fb = fold(x['b'], q)\n    return [q, [max(u, v) for u, v in zip(fa, fb)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [3,\n                   2,\n                   4,\n                   3,\n                   0,\n                   4,\n                   5,\n                   1,\n                   1,\n                   1,\n                   0,\n                   0,\n                   0,\n                   5,\n                   3,\n                   0,\n                   4,\n                   2,\n                   5,\n                   3,\n                   0,\n                   3,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   5,\n                   4,\n                   3,\n                   1,\n                   0]},\n    'b': {'p': 3, 'regs': [2, 1, 0, 4, 3, 0, 1, 3]}},\n   [3, [5, 2, 3, 4, 6, 2, 5, 6]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 3, 0, 2]},\n    'b': {'p': 4, 'regs': [5, 0, 5, 3, 3, 2, 2, 2, 4, 4, 0, 3, 4, 0, 4, 4]}},\n   [2, [7, 5, 6, 6]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [0, 0, 4, 0, 1, 5, 0, 0]},\n    'b': {'p': 3, 'regs': [0, 2, 1, 4, 0, 0, 0, 0]}},\n   [3, [0, 2, 4, 4, 1, 5, 0, 0]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [4, 4, 4, 4]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 1]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [0, 5, 0, 0, 0, 0, 4, 2]},\n    'b': {'p': 6,\n          'regs': [0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   4,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   1,\n                   3,\n                   0,\n                   0,\n                   0]}},\n   [3, [3, 6, 3, 2, 1, 6, 4, 2]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [0,\n                   0,\n                   1,\n                   2,\n                   0,\n                   2,\n                   0,\n                   3,\n                   0,\n                   4,\n                   5,\n                   0,\n                   3,\n                   0,\n                   0,\n                   3,\n                   3,\n                   1,\n                   2,\n                   0,\n                   5,\n                   0,\n                   3,\n                   0,\n                   4,\n                   1,\n                   0,\n                   1,\n                   1,\n                   4,\n                   3,\n                   4]},\n    'b': {'p': 3, 'regs': [3, 0, 3, 3, 0, 1, 1, 2]}},\n   [3, [3, 2, 3, 5, 5, 7, 6, 3]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 0, 0, 0]},\n    'b': {'p': 4, 'regs': [1, 2, 5, 0, 1, 0, 2, 0, 3, 2, 4, 1, 4, 0, 3, 1]}},\n   [2, [3, 3, 5, 6]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 1, 2, 5, 4]},\n    'b': {'p': 3, 'regs': [2, 1, 0, 0, 0, 0, 0, 0]}},\n   [3, [2, 1, 0, 0, 1, 2, 5, 4]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [5, 5, 5, 5]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 2]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [0, 0, 2, 4, 5, 0, 5, 0]},\n    'b': {'p': 6,\n          'regs': [0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   2,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   1,\n                   4,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   0,\n                   4,\n                   3,\n                   0,\n                   0,\n                   2,\n                   5,\n                   0,\n                   0,\n                   0]}},\n   [3, [1, 0, 3, 4, 5, 4, 5, 6]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [1,\n                   2,\n                   2,\n                   1,\n                   3,\n                   3,\n                   3,\n                   0,\n                   1,\n                   0,\n                   4,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   4,\n                   0,\n                   2,\n                   4,\n                   0,\n                   4,\n                   0,\n                   3,\n                   1,\n                   2,\n                   5,\n                   5,\n                   0,\n                   0]},\n    'b': {'p': 3, 'regs': [4, 0, 0, 1, 4, 4, 0, 0]}},\n   [3, [4, 5, 3, 1, 4, 4, 2, 7]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 2, 0, 0]},\n    'b': {'p': 4, 'regs': [2, 5, 1, 1, 1, 2, 4, 5, 1, 3, 3, 3, 0, 3, 1, 3]}},\n   [2, [4, 3, 3, 2]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [5, 0, 0, 4, 0, 0, 2, 5]},\n    'b': {'p': 3, 'regs': [3, 0, 1, 1, 5, 3, 1, 0]}},\n   [3, [5, 0, 1, 4, 5, 3, 2, 5]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [6, 6, 6, 6]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [1, 0, 0, 3, 0, 0, 0, 5]},\n    'b': {'p': 6,\n          'regs': [0,\n                   2,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   5,\n                   3,\n                   0,\n                   3,\n                   4,\n                   0,\n                   4,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0]}},\n   [3, [3, 3, 6, 3, 1, 1, 5, 7]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   1,\n                   4,\n                   4,\n                   0,\n                   2,\n                   3,\n                   5,\n                   1,\n                   0,\n                   0,\n                   1,\n                   1,\n                   5,\n                   3,\n                   0,\n                   0,\n                   0,\n                   5,\n                   4,\n                   3,\n                   4,\n                   5,\n                   3,\n                   2]},\n    'b': {'p': 3, 'regs': [5, 3, 1, 2, 0, 3, 3, 3]}},\n   [3, [5, 3, 3, 4, 1, 7, 3, 6]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 0, 0, 0]},\n    'b': {'p': 4, 'regs': [1, 0, 3, 0, 4, 4, 2, 1, 4, 4, 2, 0, 0, 1, 2, 1]}},\n   [2, [3, 6, 6, 2]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [3, 3, 2, 1, 5, 3, 0, 0]},\n    'b': {'p': 3, 'regs': [0, 1, 0, 0, 0, 2, 2, 5]}},\n   [3, [3, 3, 2, 1, 5, 3, 2, 5]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [3, 3, 3, 3]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 1]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [4, 2, 0, 0, 4, 0, 2, 0]},\n    'b': {'p': 6,\n          'regs': [0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   5,\n                   0,\n                   4,\n                   2,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   2,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   5,\n                   3,\n                   4,\n                   5,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   5,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0]}},\n   [3, [4, 3, 2, 3, 8, 6, 2, 3]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [0,\n                   5,\n                   1,\n                   2,\n                   0,\n                   5,\n                   0,\n                   1,\n                   1,\n                   0,\n                   5,\n                   1,\n                   0,\n                   1,\n                   0,\n                   2,\n                   3,\n                   1,\n                   0,\n                   3,\n                   4,\n                   0,\n                   0,\n                   5,\n                   0,\n                   5,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0]},\n    'b': {'p': 3, 'regs': [5, 1, 1, 4, 2, 3, 5, 0]}},\n   [3, [5, 2, 3, 4, 5, 6, 5, 0]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 3, 3, 0]},\n    'b': {'p': 4, 'regs': [1, 3, 2, 0, 0, 5, 2, 2, 3, 2, 4, 2, 3, 3, 1, 3]}},\n   [2, [3, 3, 5, 5]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [4, 0, 0, 3, 0, 4, 1, 1]},\n    'b': {'p': 3, 'regs': [0, 0, 0, 0, 3, 0, 4, 0]}},\n   [3, [4, 0, 0, 3, 3, 4, 4, 1]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [4, 4, 4, 4]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 2]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [0, 0, 4, 4, 0, 5, 3, 0]},\n    'b': {'p': 6,\n          'regs': [0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   5,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   1,\n                   3,\n                   1,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   3,\n                   0,\n                   0,\n                   4]}},\n   [3, [1, 4, 4, 7, 3, 8, 3, 2]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]]]\nfor label, args, expected in cases[N - 1]:\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":"3cb0b99aeaccf750cd8f92a13e39e1248f4fc9b9f56be28e3b070f2b83cdae70","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    def fold(sk, q):\n        d = sk['p'] - q\n        out = [0] * (1 << q)\n        for j, r in enumerate(sk['regs']):\n            if r == 0:\n                continue\n            nj = j >> d\n            low = j & ((1 << d) - 1)\n            if low != 0:\n                nr = low.bit_length()\n            else:\n                nr = r + d\n            out[nj] = max(out[nj], nr)\n        return out\n    q = min(x['a']['p'], x['b']['p'])\n    fa = fold(x['a'], q)\n    fb = fold(x['b'], q)\n    return [q, [max(u, v) for u, v in zip(fa, fb)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [3,\n                   2,\n                   4,\n                   3,\n                   0,\n                   4,\n                   5,\n                   1,\n                   1,\n                   1,\n                   0,\n                   0,\n                   0,\n                   5,\n                   3,\n                   0,\n                   4,\n                   2,\n                   5,\n                   3,\n                   0,\n                   3,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   5,\n                   4,\n                   3,\n                   1,\n                   0]},\n    'b': {'p': 3, 'regs': [2, 1, 0, 4, 3, 0, 1, 3]}},\n   [3, [5, 2, 3, 4, 6, 2, 5, 6]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 3, 0, 2]},\n    'b': {'p': 4, 'regs': [5, 0, 5, 3, 3, 2, 2, 2, 4, 4, 0, 3, 4, 0, 4, 4]}},\n   [2, [7, 5, 6, 6]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [0, 0, 4, 0, 1, 5, 0, 0]},\n    'b': {'p': 3, 'regs': [0, 2, 1, 4, 0, 0, 0, 0]}},\n   [3, [0, 2, 4, 4, 1, 5, 0, 0]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [4, 4, 4, 4]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 1]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [0, 5, 0, 0, 0, 0, 4, 2]},\n    'b': {'p': 6,\n          'regs': [0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   4,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   1,\n                   3,\n                   0,\n                   0,\n                   0]}},\n   [3, [3, 6, 3, 2, 1, 6, 4, 2]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [0,\n                   0,\n                   1,\n                   2,\n                   0,\n                   2,\n                   0,\n                   3,\n                   0,\n                   4,\n                   5,\n                   0,\n                   3,\n                   0,\n                   0,\n                   3,\n                   3,\n                   1,\n                   2,\n                   0,\n                   5,\n                   0,\n                   3,\n                   0,\n                   4,\n                   1,\n                   0,\n                   1,\n                   1,\n                   4,\n                   3,\n                   4]},\n    'b': {'p': 3, 'regs': [3, 0, 3, 3, 0, 1, 1, 2]}},\n   [3, [3, 2, 3, 5, 5, 7, 6, 3]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 0, 0, 0]},\n    'b': {'p': 4, 'regs': [1, 2, 5, 0, 1, 0, 2, 0, 3, 2, 4, 1, 4, 0, 3, 1]}},\n   [2, [3, 3, 5, 6]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 1, 2, 5, 4]},\n    'b': {'p': 3, 'regs': [2, 1, 0, 0, 0, 0, 0, 0]}},\n   [3, [2, 1, 0, 0, 1, 2, 5, 4]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [5, 5, 5, 5]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 2]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [0, 0, 2, 4, 5, 0, 5, 0]},\n    'b': {'p': 6,\n          'regs': [0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   2,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   1,\n                   4,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   0,\n                   4,\n                   3,\n                   0,\n                   0,\n                   2,\n                   5,\n                   0,\n                   0,\n                   0]}},\n   [3, [1, 0, 3, 4, 5, 4, 5, 6]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [1,\n                   2,\n                   2,\n                   1,\n                   3,\n                   3,\n                   3,\n                   0,\n                   1,\n                   0,\n                   4,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   4,\n                   0,\n                   2,\n                   4,\n                   0,\n                   4,\n                   0,\n                   3,\n                   1,\n                   2,\n                   5,\n                   5,\n                   0,\n                   0]},\n    'b': {'p': 3, 'regs': [4, 0, 0, 1, 4, 4, 0, 0]}},\n   [3, [4, 5, 3, 1, 4, 4, 2, 7]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 2, 0, 0]},\n    'b': {'p': 4, 'regs': [2, 5, 1, 1, 1, 2, 4, 5, 1, 3, 3, 3, 0, 3, 1, 3]}},\n   [2, [4, 3, 3, 2]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [5, 0, 0, 4, 0, 0, 2, 5]},\n    'b': {'p': 3, 'regs': [3, 0, 1, 1, 5, 3, 1, 0]}},\n   [3, [5, 0, 1, 4, 5, 3, 2, 5]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [6, 6, 6, 6]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [1, 0, 0, 3, 0, 0, 0, 5]},\n    'b': {'p': 6,\n          'regs': [0,\n                   2,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   5,\n                   3,\n                   0,\n                   3,\n                   4,\n                   0,\n                   4,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0]}},\n   [3, [3, 3, 6, 3, 1, 1, 5, 7]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   1,\n                   4,\n                   4,\n                   0,\n                   2,\n                   3,\n                   5,\n                   1,\n                   0,\n                   0,\n                   1,\n                   1,\n                   5,\n                   3,\n                   0,\n                   0,\n                   0,\n                   5,\n                   4,\n                   3,\n                   4,\n                   5,\n                   3,\n                   2]},\n    'b': {'p': 3, 'regs': [5, 3, 1, 2, 0, 3, 3, 3]}},\n   [3, [5, 3, 3, 4, 1, 7, 3, 6]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 0, 0, 0]},\n    'b': {'p': 4, 'regs': [1, 0, 3, 0, 4, 4, 2, 1, 4, 4, 2, 0, 0, 1, 2, 1]}},\n   [2, [3, 6, 6, 2]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [3, 3, 2, 1, 5, 3, 0, 0]},\n    'b': {'p': 3, 'regs': [0, 1, 0, 0, 0, 2, 2, 5]}},\n   [3, [3, 3, 2, 1, 5, 3, 2, 5]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [3, 3, 3, 3]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 1]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [4, 2, 0, 0, 4, 0, 2, 0]},\n    'b': {'p': 6,\n          'regs': [0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   5,\n                   0,\n                   4,\n                   2,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   2,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   5,\n                   3,\n                   4,\n                   5,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   5,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0]}},\n   [3, [4, 3, 2, 3, 8, 6, 2, 3]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [0,\n                   5,\n                   1,\n                   2,\n                   0,\n                   5,\n                   0,\n                   1,\n                   1,\n                   0,\n                   5,\n                   1,\n                   0,\n                   1,\n                   0,\n                   2,\n                   3,\n                   1,\n                   0,\n                   3,\n                   4,\n                   0,\n                   0,\n                   5,\n                   0,\n                   5,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0]},\n    'b': {'p': 3, 'regs': [5, 1, 1, 4, 2, 3, 5, 0]}},\n   [3, [5, 2, 3, 4, 5, 6, 5, 0]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 3, 3, 0]},\n    'b': {'p': 4, 'regs': [1, 3, 2, 0, 0, 5, 2, 2, 3, 2, 4, 2, 3, 3, 1, 3]}},\n   [2, [3, 3, 5, 5]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [4, 0, 0, 3, 0, 4, 1, 1]},\n    'b': {'p': 3, 'regs': [0, 0, 0, 0, 3, 0, 4, 0]}},\n   [3, [4, 0, 0, 3, 3, 4, 4, 1]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [4, 4, 4, 4]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 2]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [0, 0, 4, 4, 0, 5, 3, 0]},\n    'b': {'p': 6,\n          'regs': [0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   5,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   1,\n                   3,\n                   1,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   3,\n                   0,\n                   0,\n                   4]}},\n   [3, [1, 4, 4, 7, 3, 8, 3, 2]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]]]\nfor label, args, expected in cases[N - 1]:\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"},"fixed":{"sha256":"90487cbbe4bc3f7e2e4b4b7a1387c0680be67d996a0fe4dd526d15f86395efaa","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    def fold(sk, q):\n        d = sk['p'] - q\n        out = [0] * (1 << q)\n        for j, r in enumerate(sk['regs']):\n            if r == 0:\n                continue\n            nj = j >> d\n            low = j & ((1 << d) - 1)\n            if low != 0:\n                nr = d - low.bit_length() + 1\n            else:\n                nr = r + d\n            out[nj] = max(out[nj], nr)\n        return out\n    q = min(x['a']['p'], x['b']['p'])\n    fa = fold(x['a'], q)\n    fb = fold(x['b'], q)\n    return [q, [max(u, v) for u, v in zip(fa, fb)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [3,\n                   2,\n                   4,\n                   3,\n                   0,\n                   4,\n                   5,\n                   1,\n                   1,\n                   1,\n                   0,\n                   0,\n                   0,\n                   5,\n                   3,\n                   0,\n                   4,\n                   2,\n                   5,\n                   3,\n                   0,\n                   3,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   5,\n                   4,\n                   3,\n                   1,\n                   0]},\n    'b': {'p': 3, 'regs': [2, 1, 0, 4, 3, 0, 1, 3]}},\n   [3, [5, 2, 3, 4, 6, 2, 5, 6]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 3, 0, 2]},\n    'b': {'p': 4, 'regs': [5, 0, 5, 3, 3, 2, 2, 2, 4, 4, 0, 3, 4, 0, 4, 4]}},\n   [2, [7, 5, 6, 6]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [0, 0, 4, 0, 1, 5, 0, 0]},\n    'b': {'p': 3, 'regs': [0, 2, 1, 4, 0, 0, 0, 0]}},\n   [3, [0, 2, 4, 4, 1, 5, 0, 0]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [4, 4, 4, 4]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 1]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [0, 5, 0, 0, 0, 0, 4, 2]},\n    'b': {'p': 6,\n          'regs': [0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   4,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   1,\n                   3,\n                   0,\n                   0,\n                   0]}},\n   [3, [3, 6, 3, 2, 1, 6, 4, 2]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [0,\n                   0,\n                   1,\n                   2,\n                   0,\n                   2,\n                   0,\n                   3,\n                   0,\n                   4,\n                   5,\n                   0,\n                   3,\n                   0,\n                   0,\n                   3,\n                   3,\n                   1,\n                   2,\n                   0,\n                   5,\n                   0,\n                   3,\n                   0,\n                   4,\n                   1,\n                   0,\n                   1,\n                   1,\n                   4,\n                   3,\n                   4]},\n    'b': {'p': 3, 'regs': [3, 0, 3, 3, 0, 1, 1, 2]}},\n   [3, [3, 2, 3, 5, 5, 7, 6, 3]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 0, 0, 0]},\n    'b': {'p': 4, 'regs': [1, 2, 5, 0, 1, 0, 2, 0, 3, 2, 4, 1, 4, 0, 3, 1]}},\n   [2, [3, 3, 5, 6]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 1, 2, 5, 4]},\n    'b': {'p': 3, 'regs': [2, 1, 0, 0, 0, 0, 0, 0]}},\n   [3, [2, 1, 0, 0, 1, 2, 5, 4]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [5, 5, 5, 5]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 2]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [0, 0, 2, 4, 5, 0, 5, 0]},\n    'b': {'p': 6,\n          'regs': [0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   2,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   1,\n                   4,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   0,\n                   4,\n                   3,\n                   0,\n                   0,\n                   2,\n                   5,\n                   0,\n                   0,\n                   0]}},\n   [3, [1, 0, 3, 4, 5, 4, 5, 6]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [1,\n                   2,\n                   2,\n                   1,\n                   3,\n                   3,\n                   3,\n                   0,\n                   1,\n                   0,\n                   4,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   4,\n                   0,\n                   2,\n                   4,\n                   0,\n                   4,\n                   0,\n                   3,\n                   1,\n                   2,\n                   5,\n                   5,\n                   0,\n                   0]},\n    'b': {'p': 3, 'regs': [4, 0, 0, 1, 4, 4, 0, 0]}},\n   [3, [4, 5, 3, 1, 4, 4, 2, 7]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 2, 0, 0]},\n    'b': {'p': 4, 'regs': [2, 5, 1, 1, 1, 2, 4, 5, 1, 3, 3, 3, 0, 3, 1, 3]}},\n   [2, [4, 3, 3, 2]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [5, 0, 0, 4, 0, 0, 2, 5]},\n    'b': {'p': 3, 'regs': [3, 0, 1, 1, 5, 3, 1, 0]}},\n   [3, [5, 0, 1, 4, 5, 3, 2, 5]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [6, 6, 6, 6]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [1, 0, 0, 3, 0, 0, 0, 5]},\n    'b': {'p': 6,\n          'regs': [0,\n                   2,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   5,\n                   3,\n                   0,\n                   3,\n                   4,\n                   0,\n                   4,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0]}},\n   [3, [3, 3, 6, 3, 1, 1, 5, 7]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   1,\n                   4,\n                   4,\n                   0,\n                   2,\n                   3,\n                   5,\n                   1,\n                   0,\n                   0,\n                   1,\n                   1,\n                   5,\n                   3,\n                   0,\n                   0,\n                   0,\n                   5,\n                   4,\n                   3,\n                   4,\n                   5,\n                   3,\n                   2]},\n    'b': {'p': 3, 'regs': [5, 3, 1, 2, 0, 3, 3, 3]}},\n   [3, [5, 3, 3, 4, 1, 7, 3, 6]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 0, 0, 0]},\n    'b': {'p': 4, 'regs': [1, 0, 3, 0, 4, 4, 2, 1, 4, 4, 2, 0, 0, 1, 2, 1]}},\n   [2, [3, 6, 6, 2]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [3, 3, 2, 1, 5, 3, 0, 0]},\n    'b': {'p': 3, 'regs': [0, 1, 0, 0, 0, 2, 2, 5]}},\n   [3, [3, 3, 2, 1, 5, 3, 2, 5]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [3, 3, 3, 3]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 1]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [4, 2, 0, 0, 4, 0, 2, 0]},\n    'b': {'p': 6,\n          'regs': [0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   5,\n                   0,\n                   4,\n                   2,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   2,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   5,\n                   3,\n                   4,\n                   5,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   5,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0]}},\n   [3, [4, 3, 2, 3, 8, 6, 2, 3]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]],\n [['fold p5 into p3',\n   {'a': {'p': 5,\n          'regs': [0,\n                   5,\n                   1,\n                   2,\n                   0,\n                   5,\n                   0,\n                   1,\n                   1,\n                   0,\n                   5,\n                   1,\n                   0,\n                   1,\n                   0,\n                   2,\n                   3,\n                   1,\n                   0,\n                   3,\n                   4,\n                   0,\n                   0,\n                   5,\n                   0,\n                   5,\n                   1,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0]},\n    'b': {'p': 3, 'regs': [5, 1, 1, 4, 2, 3, 5, 0]}},\n   [3, [5, 2, 3, 4, 5, 6, 5, 0]]],\n  ['fold p4 into p2',\n   {'a': {'p': 2, 'regs': [0, 3, 3, 0]},\n    'b': {'p': 4, 'regs': [1, 3, 2, 0, 0, 5, 2, 2, 3, 2, 4, 2, 3, 3, 1, 3]}},\n   [2, [3, 3, 5, 5]]],\n  ['same precision',\n   {'a': {'p': 3, 'regs': [4, 0, 0, 3, 0, 4, 1, 1]},\n    'b': {'p': 3, 'regs': [0, 0, 0, 0, 3, 0, 4, 0]}},\n   [3, [4, 0, 0, 3, 3, 4, 4, 1]]],\n  ['only low-zero slots',\n   {'a': {'p': 4, 'regs': [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0]},\n    'b': {'p': 2, 'regs': [0, 1, 0, 0]}},\n   [2, [4, 4, 4, 4]]],\n  ['only odd slots',\n   {'a': {'p': 4, 'regs': [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]},\n    'b': {'p': 2, 'regs': [0, 0, 0, 2]}},\n   [2, [2, 2, 2, 2]]],\n  ['fold p6 into p3',\n   {'a': {'p': 3, 'regs': [0, 0, 4, 4, 0, 5, 3, 0]},\n    'b': {'p': 6,\n          'regs': [0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   3,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   5,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   0,\n                   1,\n                   0,\n                   0,\n                   4,\n                   0,\n                   0,\n                   0,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   0,\n                   3,\n                   1,\n                   3,\n                   1,\n                   5,\n                   0,\n                   0,\n                   0,\n                   0,\n                   2,\n                   0,\n                   3,\n                   0,\n                   0,\n                   4]}},\n   [3, [1, 4, 4, 7, 3, 8, 3, 2]]],\n  ['empty sketches',\n   {'a': {'p': 3, 'regs': [0, 0, 0, 0, 0, 0, 0, 0]}, 'b': {'p': 2, 'regs': [0, 0, 0, 0]}},\n   [2, [0, 0, 0, 0]]]]]\nfor label, args, expected in cases[N - 1]:\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 with stipulated constants and pre-hashed or explicitly hashed inputs; it is not a production implementation and makes no claim of conformance to any library or paper beyond the stated contract. 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-probabilistic_sketches-hll-precision-fold-low-bit-rank","generated_at":"2026-09-29T14:48:43.658748+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Merging distinct-count sketches produced with different precision settings requires re-deriving ranks, not just re-indexing registers.","repair":"Use d - bitlen(low) + 1.","root_cause":"The rank from displaced bits uses their bit length instead of their leading-zero count.","sha256":"ae28a1a0cad489d614ce257c1ff2b745a46fce4e680d3babb54b7822d6b28b57","title":"HyperLogLog merge across precisions: displaced-bit rank counts from the wrong end · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":37.301,"exit_code":1,"observations":[{"actual":[3,[5,1,3,4,6,1,5,6]],"check":"fold p5 into p3","expected":[3,[5,2,3,4,6,2,5,6]],"passed":false},{"actual":[2,[7,5,6,6]],"check":"fold p4 into p2","expected":[2,[7,5,6,6]],"passed":true},{"actual":[3,[0,2,4,4,1,5,0,0]],"check":"same precision","expected":[3,[0,2,4,4,1,5,0,0]],"passed":true},{"actual":[2,[4,4,4,4]],"check":"only low-zero slots","expected":[2,[4,4,4,4]],"passed":true},{"actual":[2,[1,1,1,1]],"check":"only odd slots","expected":[2,[2,2,2,2]],"passed":false},{"actual":[3,[2,6,2,1,0,6,4,2]],"check":"fold p6 into p3","expected":[3,[3,6,3,2,1,6,4,2]],"passed":false},{"actual":[2,[0,0,0,0]],"check":"empty sketches","expected":[2,[0,0,0,0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fold p5 into p3\", \"actual\": [3, [5, 1, 3, 4, 6, 1, 5, 6]], \"expected\": [3, [5, 2, 3, 4, 6, 2, 5, 6]], \"passed\": false}, {\"check\": \"fold p4 into p2\", \"actual\": [2, [7, 5, 6, 6]], \"expected\": [2, [7, 5, 6, 6]], \"passed\": true}, {\"check\": \"same precision\", \"actual\": [3, [0, 2, 4, 4, 1, 5, 0, 0]], \"expected\": [3, [0, 2, 4, 4, 1, 5, 0, 0]], \"passed\": true}, {\"check\": \"only low-zero slots\", \"actual\": [2, [4, 4, 4, 4]], \"expected\": [2, [4, 4, 4, 4]], \"passed\": true}, {\"check\": \"only odd slots\", \"actual\": [2, [1, 1, 1, 1]], \"expected\": [2, [2, 2, 2, 2]], \"passed\": false}, {\"check\": \"fold p6 into p3\", \"actual\": [3, [2, 6, 2, 1, 0, 6, 4, 2]], \"expected\": [3, [3, 6, 3, 2, 1, 6, 4, 2]], \"passed\": false}, {\"check\": \"empty sketches\", \"actual\": [2, [0, 0, 0, 0]], \"expected\": [2, [0, 0, 0, 0]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.497,"exit_code":1,"observations":[{"actual":[3,[5,2,3,4,6,1,5,6]],"check":"fold p5 into p3","expected":[3,[5,2,3,4,6,2,5,6]],"passed":false},{"actual":[2,[7,5,6,6]],"check":"fold p4 into p2","expected":[2,[7,5,6,6]],"passed":true},{"actual":[3,[0,2,4,4,1,5,0,0]],"check":"same precision","expected":[3,[0,2,4,4,1,5,0,0]],"passed":true},{"actual":[2,[4,4,4,4]],"check":"only low-zero slots","expected":[2,[4,4,4,4]],"passed":true},{"actual":[2,[2,2,2,2]],"check":"only odd slots","expected":[2,[2,2,2,2]],"passed":true},{"actual":[3,[1,6,3,3,3,6,4,3]],"check":"fold p6 into p3","expected":[3,[3,6,3,2,1,6,4,2]],"passed":false},{"actual":[2,[0,0,0,0]],"check":"empty sketches","expected":[2,[0,0,0,0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fold p5 into p3\", \"actual\": [3, [5, 2, 3, 4, 6, 1, 5, 6]], \"expected\": [3, [5, 2, 3, 4, 6, 2, 5, 6]], \"passed\": false}, {\"check\": \"fold p4 into p2\", \"actual\": [2, [7, 5, 6, 6]], \"expected\": [2, [7, 5, 6, 6]], \"passed\": true}, {\"check\": \"same precision\", \"actual\": [3, [0, 2, 4, 4, 1, 5, 0, 0]], \"expected\": [3, [0, 2, 4, 4, 1, 5, 0, 0]], \"passed\": true}, {\"check\": \"only low-zero slots\", \"actual\": [2, [4, 4, 4, 4]], \"expected\": [2, [4, 4, 4, 4]], \"passed\": true}, {\"check\": \"only odd slots\", \"actual\": [2, [2, 2, 2, 2]], \"expected\": [2, [2, 2, 2, 2]], \"passed\": true}, {\"check\": \"fold p6 into p3\", \"actual\": [3, [1, 6, 3, 3, 3, 6, 4, 3]], \"expected\": [3, [3, 6, 3, 2, 1, 6, 4, 2]], \"passed\": false}, {\"check\": \"empty sketches\", \"actual\": [2, [0, 0, 0, 0]], \"expected\": [2, [0, 0, 0, 0]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.264,"exit_code":0,"observations":[{"actual":[3,[5,2,3,4,6,2,5,6]],"check":"fold p5 into p3","expected":[3,[5,2,3,4,6,2,5,6]],"passed":true},{"actual":[2,[7,5,6,6]],"check":"fold p4 into p2","expected":[2,[7,5,6,6]],"passed":true},{"actual":[3,[0,2,4,4,1,5,0,0]],"check":"same precision","expected":[3,[0,2,4,4,1,5,0,0]],"passed":true},{"actual":[2,[4,4,4,4]],"check":"only low-zero slots","expected":[2,[4,4,4,4]],"passed":true},{"actual":[2,[2,2,2,2]],"check":"only odd slots","expected":[2,[2,2,2,2]],"passed":true},{"actual":[3,[3,6,3,2,1,6,4,2]],"check":"fold p6 into p3","expected":[3,[3,6,3,2,1,6,4,2]],"passed":true},{"actual":[2,[0,0,0,0]],"check":"empty sketches","expected":[2,[0,0,0,0]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fold p5 into p3\", \"actual\": [3, [5, 2, 3, 4, 6, 2, 5, 6]], \"expected\": [3, [5, 2, 3, 4, 6, 2, 5, 6]], \"passed\": true}, {\"check\": \"fold p4 into p2\", \"actual\": [2, [7, 5, 6, 6]], \"expected\": [2, [7, 5, 6, 6]], \"passed\": true}, {\"check\": \"same precision\", \"actual\": [3, [0, 2, 4, 4, 1, 5, 0, 0]], \"expected\": [3, [0, 2, 4, 4, 1, 5, 0, 0]], \"passed\": true}, {\"check\": \"only low-zero slots\", \"actual\": [2, [4, 4, 4, 4]], \"expected\": [2, [4, 4, 4, 4]], \"passed\": true}, {\"check\": \"only odd slots\", \"actual\": [2, [2, 2, 2, 2]], \"expected\": [2, [2, 2, 2, 2]], \"passed\": true}, {\"check\": \"fold p6 into p3\", \"actual\": [3, [3, 6, 3, 2, 1, 6, 4, 2]], \"expected\": [3, [3, 6, 3, 2, 1, 6, 4, 2]], \"passed\": true}, {\"check\": \"empty sketches\", \"actual\": [2, [0, 0, 0, 0]], \"expected\": [2, [0, 0, 0, 0]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}