{"abstract":"A document compared with an empty one is treated as undefined instead of disjoint.","category":"Probabilistic sketches","checks":7,"contract":"Input {k, A, B} integer sets. Signature component i is min over v of (A_i v + B_i) mod 2^31-1 with fixed coefficients. The estimate is the fraction of positions where both signatures agree, rounded to 4 decimals. Two empty sets have undefined similarity (None, with empty signatures); exactly one empty set gives 0.0. Return [sigA, sigB, estimate].","evaluation_group":"w2-probabilistic_sketches-minhash-jaccard","failed_approach":"Dropping the non-empty signature loses data callers index on.","family":"w2-probabilistic_sketches-minhash-jaccard-one-empty","id":"FA-73206","implementations":{"attempt":{"sha256":"c46fe07e1342b93b47c5383a54a9cbb3de80a0991c7090b3a2044576a317512e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    k = x['k']\n    P = 2147483647\n    A = [1103515245, 1812433253, 1664525017, 2013265921, 1597334677, 1566083941, 69069, 22695477]\n    Bc = [12345, 1013904223, 7, 99991, 31337, 424242, 1, 3]\n    def sig(s):\n        return [min((A[i] * v + Bc[i]) % P for v in s) for i in range(k)]\n    a, b = x['A'], x['B']\n    if not a and not b:\n        return [[], [], None]\n    if not a or not b:\n        return [[], [], 0.0]\n    sa, sb = sig(a), sig(b)\n    matches = sum(1 for i in range(k) if sa[i] == sb[i])\n    return [sa, sb, round(matches / k, 4)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['overlapping sets k=4',\n   {'A': [185, 180, 93, 45, 14, 71, 154, 36, 166],\n    'B': [45, 14, 71, 154, 36, 166, 145, 34, 146, 221],\n    'k': 4},\n   [[139386205, 618166001, 69675629, 268535474], [51964590, 359609062, 69675629, 268535474], 0.5]],\n  ['overlapping sets k=6',\n   {'A': [137, 9, 132, 163, 55, 20, 170, 179, 119],\n    'B': [163, 55, 20, 170, 179, 119, 47, 41, 24, 251],\n    'k': 6},\n   [[321824033, 87781176, 406660754, 805406688, 307613469, 235695117],\n    [146980803, 87781176, 509981506, 134317810, 307613469, 97986032],\n    0.3333]],\n  ['overlapping sets k=8',\n   {'A': [148, 51, 156, 91, 149, 73, 41, 176, 152],\n    'B': [91, 149, 73, 41, 176, 152, 140, 118, 113, 264],\n    'k': 8},\n   [[111511433, 27093348, 898627007, 100332, 76137897, 413810294, 2831830, 930514560],\n    [143183504, 27093348, 898627007, 100332, 110223490, 114735638, 2831830, 417105257],\n    0.5]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [6, 9], 'B': [], 'k': 3}, [[178652874, 145934324, 1397215521], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 14], 'B': [14, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 268535474, 497068074],\n    [238199717, 8753041, 431298261, 268535474, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000001, 7, 99], 'B': [1000000001, 8], 'k': 4},\n   [[651916080, 56169922, 661849663, 1208059556],\n    [238199717, 480984718, 431298261, 1073841830],\n    0.0]]],\n [['overlapping sets k=4',\n   {'A': [77, 180, 129, 27, 120, 79, 147, 135, 166],\n    'B': [27, 120, 79, 147, 135, 166, 178, 114, 109, 210],\n    'k': 4},\n   [[619558248, 314726861, 27022876, 134317872], [24089818, 314726861, 27022876, 134317872], 0.75]],\n  ['overlapping sets k=6',\n   {'A': [43, 26, 163, 158, 61, 6, 58, 100, 105],\n    'B': [158, 61, 6, 58, 100, 105, 18, 10, 87, 294],\n    'k': 6},\n   [[178652874, 87781176, 327977509, 268535753, 216447956, 481067515],\n    [163463678, 193351205, 604294635, 268535753, 216447956, 272647769],\n    0.3333]],\n  ['overlapping sets k=8',\n   {'A': [119, 125, 38, 35, 22, 123, 186, 169, 60],\n    'B': [35, 22, 123, 186, 169, 60, 55, 134, 69, 203],\n    'k': 8},\n   [[321824033, 24558668, 112328382, 402753417, 72170210, 94532592, 1519519, 499300497],\n    [440917719, 24558668, 112328382, 536971019, 72170210, 87884509, 1519519, 312214540],\n    0.5]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [7, 9], 'B': [], 'k': 3}, [[1282168119, 145934324, 914256891], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 15], 'B': [15, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 134317748, 337731375],\n    [238199717, 8753041, 431298261, 134317748, 337731375],\n    1.0]],\n  ['large values',\n   {'A': [1000000002, 7, 99], 'B': [1000000002, 8], 'k': 4},\n   [[1282168119, 56169922, 178891033, 1208059556],\n    [238199717, 480984718, 178891033, 1073841830],\n    0.25]]],\n [['overlapping sets k=4',\n   {'A': [21, 131, 85, 16, 192, 176, 186, 106, 14],\n    'B': [16, 192, 176, 186, 106, 14, 154, 67, 112, 276],\n    'k': 4},\n   [[416840246, 27093348, 345992755, 100022], [290151962, 27093348, 345992755, 100022], 0.75]],\n  ['overlapping sets k=6',\n   {'A': [17, 173, 195, 128, 127, 162, 64, 34, 2],\n    'B': [128, 127, 162, 64, 34, 2, 4, 31, 120, 261],\n    'k': 6},\n   [[59559188, 103586803, 200019250, 100115, 95164537, 302952338],\n    [59559188, 343803435, 27022876, 100115, 125282443, 302952338],\n    0.5]],\n  ['overlapping sets k=8',\n   {'A': [104, 160, 182, 180, 79, 129, 139, 39, 130],\n    'B': [180, 79, 129, 139, 39, 130, 181, 110, 50, 200],\n    'k': 8},\n   [[87433960, 164274631, 36030499, 100301, 19057977, 161789813, 2693692, 212845964],\n    [20292519, 314726861, 45038122, 134317872, 19057977, 161789813, 2693692, 244128109],\n    0.375]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [8, 9], 'B': [], 'k': 3}, [[238199717, 145934324, 431298261], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 16], 'B': [16, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 100022, 497068074],\n    [238199717, 8753041, 431298261, 100022, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000003, 7, 99], 'B': [1000000003, 8], 'k': 4},\n   [[711462923, 56169922, 914256891, 1208059556],\n    [238199717, 318725747, 431298261, 1073841830],\n    0.0]]],\n [['overlapping sets k=4',\n   {'A': [47, 135, 53, 125, 192, 104, 165, 180, 91],\n    'B': [125, 192, 104, 165, 180, 91, 144, 142, 45, 255],\n    'k': 4},\n   [[325621332, 298921234, 172996381, 100363], [76042063, 11287721, 139351251, 100270], 0.0]],\n  ['overlapping sets k=6',\n   {'A': [37, 42, 89, 127, 77, 170, 4, 111, 27],\n    'B': [127, 77, 170, 4, 111, 27, 20, 114, 70, 228],\n    'k': 6},\n   [[27887117, 330532488, 78683252, 134317934, 178394676, 329803467],\n    [83636661, 330532488, 78683252, 134317934, 144309083, 104634115],\n    0.5]],\n  ['overlapping sets k=8',\n   {'A': [67, 151, 142, 156, 93, 90, 105, 112, 40],\n    'B': [156, 93, 90, 105, 112, 40, 161, 43, 152, 287],\n    'k': 8},\n   [[349698805, 40364295, 9007630, 100208, 76137897, 255898163, 2762761, 235541441],\n    [206527646, 193351205, 9007630, 100208, 76137897, 366756119, 2762761, 71150961],\n    0.5]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [9, 9], 'B': [], 'k': 3}, [[1341714962, 145934324, 2095823278], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 17], 'B': [17, 8, 3], 'k': 5},\n   [[238199717, 8753041, 379637885, 1073841830, 497068074],\n    [238199717, 8753041, 379637885, 1073841830, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000004, 7, 99], 'B': [1000000004, 8], 'k': 4},\n   [[1282168119, 56169922, 914256891, 1208059556],\n    [238199717, 480984718, 431298261, 1073841830],\n    0.0]]],\n [['overlapping sets k=4',\n   {'A': [38, 155, 109, 179, 16, 111, 170, 114, 19],\n    'B': [179, 16, 111, 170, 114, 19, 18, 198, 125, 300],\n    'k': 4},\n   [[24089818, 330532488, 78683252, 100022], [83636661, 330532488, 78683252, 100022], 0.75]],\n  ['overlapping sets k=6',\n   {'A': [10, 150, 23, 4, 69, 99, 130, 93, 198],\n    'B': [4, 69, 99, 130, 93, 198, 145, 154, 30, 206],\n    'k': 6},\n   [[119106031, 56169922, 182004004, 402753355, 231506909, 423911817],\n    [119106031, 56169922, 182004004, 268535505, 375784655, 423911817],\n    0.6667]],\n  ['overlapping sets k=8',\n   {'A': [58, 185, 14, 110, 196, 126, 6, 158, 12],\n    'B': [110, 196, 126, 6, 158, 12, 124, 92, 187, 209],\n    'k': 8},\n   [[139386205, 618166001, 561641882, 268535474, 303645782, 450762946, 414415, 136172865],\n    [178652874, 254039033, 242672003, 268535660, 201389003, 198742465, 414415, 136172865],\n    0.25]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [10, 9], 'B': [], 'k': 3}, [[297746560, 145934324, 1612864648], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 18], 'B': [18, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 1073841830, 497068074],\n    [238199717, 8753041, 431298261, 1073841830, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000005, 7, 99], 'B': [1000000005, 8], 'k': 4},\n   [[771009766, 56169922, 877498790, 1208059556],\n    [238199717, 480984718, 431298261, 1073841830],\n    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":"840bf863afcde8c5ff7e8b761223f7e3ae4daa56358adc9a54f27d030934c260","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    k = x['k']\n    P = 2147483647\n    A = [1103515245, 1812433253, 1664525017, 2013265921, 1597334677, 1566083941, 69069, 22695477]\n    Bc = [12345, 1013904223, 7, 99991, 31337, 424242, 1, 3]\n    def sig(s):\n        return [min((A[i] * v + Bc[i]) % P for v in s) for i in range(k)]\n    a, b = x['A'], x['B']\n    if not a and not b:\n        return [[], [], None]\n    if not a or not b:\n        return [sig(a) if a else [], sig(b) if b else [], None]\n    sa, sb = sig(a), sig(b)\n    matches = sum(1 for i in range(k) if sa[i] == sb[i])\n    return [sa, sb, round(matches / k, 4)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['overlapping sets k=4',\n   {'A': [185, 180, 93, 45, 14, 71, 154, 36, 166],\n    'B': [45, 14, 71, 154, 36, 166, 145, 34, 146, 221],\n    'k': 4},\n   [[139386205, 618166001, 69675629, 268535474], [51964590, 359609062, 69675629, 268535474], 0.5]],\n  ['overlapping sets k=6',\n   {'A': [137, 9, 132, 163, 55, 20, 170, 179, 119],\n    'B': [163, 55, 20, 170, 179, 119, 47, 41, 24, 251],\n    'k': 6},\n   [[321824033, 87781176, 406660754, 805406688, 307613469, 235695117],\n    [146980803, 87781176, 509981506, 134317810, 307613469, 97986032],\n    0.3333]],\n  ['overlapping sets k=8',\n   {'A': [148, 51, 156, 91, 149, 73, 41, 176, 152],\n    'B': [91, 149, 73, 41, 176, 152, 140, 118, 113, 264],\n    'k': 8},\n   [[111511433, 27093348, 898627007, 100332, 76137897, 413810294, 2831830, 930514560],\n    [143183504, 27093348, 898627007, 100332, 110223490, 114735638, 2831830, 417105257],\n    0.5]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [6, 9], 'B': [], 'k': 3}, [[178652874, 145934324, 1397215521], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 14], 'B': [14, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 268535474, 497068074],\n    [238199717, 8753041, 431298261, 268535474, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000001, 7, 99], 'B': [1000000001, 8], 'k': 4},\n   [[651916080, 56169922, 661849663, 1208059556],\n    [238199717, 480984718, 431298261, 1073841830],\n    0.0]]],\n [['overlapping sets k=4',\n   {'A': [77, 180, 129, 27, 120, 79, 147, 135, 166],\n    'B': [27, 120, 79, 147, 135, 166, 178, 114, 109, 210],\n    'k': 4},\n   [[619558248, 314726861, 27022876, 134317872], [24089818, 314726861, 27022876, 134317872], 0.75]],\n  ['overlapping sets k=6',\n   {'A': [43, 26, 163, 158, 61, 6, 58, 100, 105],\n    'B': [158, 61, 6, 58, 100, 105, 18, 10, 87, 294],\n    'k': 6},\n   [[178652874, 87781176, 327977509, 268535753, 216447956, 481067515],\n    [163463678, 193351205, 604294635, 268535753, 216447956, 272647769],\n    0.3333]],\n  ['overlapping sets k=8',\n   {'A': [119, 125, 38, 35, 22, 123, 186, 169, 60],\n    'B': [35, 22, 123, 186, 169, 60, 55, 134, 69, 203],\n    'k': 8},\n   [[321824033, 24558668, 112328382, 402753417, 72170210, 94532592, 1519519, 499300497],\n    [440917719, 24558668, 112328382, 536971019, 72170210, 87884509, 1519519, 312214540],\n    0.5]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [7, 9], 'B': [], 'k': 3}, [[1282168119, 145934324, 914256891], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 15], 'B': [15, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 134317748, 337731375],\n    [238199717, 8753041, 431298261, 134317748, 337731375],\n    1.0]],\n  ['large values',\n   {'A': [1000000002, 7, 99], 'B': [1000000002, 8], 'k': 4},\n   [[1282168119, 56169922, 178891033, 1208059556],\n    [238199717, 480984718, 178891033, 1073841830],\n    0.25]]],\n [['overlapping sets k=4',\n   {'A': [21, 131, 85, 16, 192, 176, 186, 106, 14],\n    'B': [16, 192, 176, 186, 106, 14, 154, 67, 112, 276],\n    'k': 4},\n   [[416840246, 27093348, 345992755, 100022], [290151962, 27093348, 345992755, 100022], 0.75]],\n  ['overlapping sets k=6',\n   {'A': [17, 173, 195, 128, 127, 162, 64, 34, 2],\n    'B': [128, 127, 162, 64, 34, 2, 4, 31, 120, 261],\n    'k': 6},\n   [[59559188, 103586803, 200019250, 100115, 95164537, 302952338],\n    [59559188, 343803435, 27022876, 100115, 125282443, 302952338],\n    0.5]],\n  ['overlapping sets k=8',\n   {'A': [104, 160, 182, 180, 79, 129, 139, 39, 130],\n    'B': [180, 79, 129, 139, 39, 130, 181, 110, 50, 200],\n    'k': 8},\n   [[87433960, 164274631, 36030499, 100301, 19057977, 161789813, 2693692, 212845964],\n    [20292519, 314726861, 45038122, 134317872, 19057977, 161789813, 2693692, 244128109],\n    0.375]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [8, 9], 'B': [], 'k': 3}, [[238199717, 145934324, 431298261], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 16], 'B': [16, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 100022, 497068074],\n    [238199717, 8753041, 431298261, 100022, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000003, 7, 99], 'B': [1000000003, 8], 'k': 4},\n   [[711462923, 56169922, 914256891, 1208059556],\n    [238199717, 318725747, 431298261, 1073841830],\n    0.0]]],\n [['overlapping sets k=4',\n   {'A': [47, 135, 53, 125, 192, 104, 165, 180, 91],\n    'B': [125, 192, 104, 165, 180, 91, 144, 142, 45, 255],\n    'k': 4},\n   [[325621332, 298921234, 172996381, 100363], [76042063, 11287721, 139351251, 100270], 0.0]],\n  ['overlapping sets k=6',\n   {'A': [37, 42, 89, 127, 77, 170, 4, 111, 27],\n    'B': [127, 77, 170, 4, 111, 27, 20, 114, 70, 228],\n    'k': 6},\n   [[27887117, 330532488, 78683252, 134317934, 178394676, 329803467],\n    [83636661, 330532488, 78683252, 134317934, 144309083, 104634115],\n    0.5]],\n  ['overlapping sets k=8',\n   {'A': [67, 151, 142, 156, 93, 90, 105, 112, 40],\n    'B': [156, 93, 90, 105, 112, 40, 161, 43, 152, 287],\n    'k': 8},\n   [[349698805, 40364295, 9007630, 100208, 76137897, 255898163, 2762761, 235541441],\n    [206527646, 193351205, 9007630, 100208, 76137897, 366756119, 2762761, 71150961],\n    0.5]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [9, 9], 'B': [], 'k': 3}, [[1341714962, 145934324, 2095823278], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 17], 'B': [17, 8, 3], 'k': 5},\n   [[238199717, 8753041, 379637885, 1073841830, 497068074],\n    [238199717, 8753041, 379637885, 1073841830, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000004, 7, 99], 'B': [1000000004, 8], 'k': 4},\n   [[1282168119, 56169922, 914256891, 1208059556],\n    [238199717, 480984718, 431298261, 1073841830],\n    0.0]]],\n [['overlapping sets k=4',\n   {'A': [38, 155, 109, 179, 16, 111, 170, 114, 19],\n    'B': [179, 16, 111, 170, 114, 19, 18, 198, 125, 300],\n    'k': 4},\n   [[24089818, 330532488, 78683252, 100022], [83636661, 330532488, 78683252, 100022], 0.75]],\n  ['overlapping sets k=6',\n   {'A': [10, 150, 23, 4, 69, 99, 130, 93, 198],\n    'B': [4, 69, 99, 130, 93, 198, 145, 154, 30, 206],\n    'k': 6},\n   [[119106031, 56169922, 182004004, 402753355, 231506909, 423911817],\n    [119106031, 56169922, 182004004, 268535505, 375784655, 423911817],\n    0.6667]],\n  ['overlapping sets k=8',\n   {'A': [58, 185, 14, 110, 196, 126, 6, 158, 12],\n    'B': [110, 196, 126, 6, 158, 12, 124, 92, 187, 209],\n    'k': 8},\n   [[139386205, 618166001, 561641882, 268535474, 303645782, 450762946, 414415, 136172865],\n    [178652874, 254039033, 242672003, 268535660, 201389003, 198742465, 414415, 136172865],\n    0.25]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [10, 9], 'B': [], 'k': 3}, [[297746560, 145934324, 1612864648], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 18], 'B': [18, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 1073841830, 497068074],\n    [238199717, 8753041, 431298261, 1073841830, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000005, 7, 99], 'B': [1000000005, 8], 'k': 4},\n   [[771009766, 56169922, 877498790, 1208059556],\n    [238199717, 480984718, 431298261, 1073841830],\n    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":"2dcb08bafeea271b3f69ffe80fb0387f6d96f924542bfb17e924cfab91a4c3c3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    k = x['k']\n    P = 2147483647\n    A = [1103515245, 1812433253, 1664525017, 2013265921, 1597334677, 1566083941, 69069, 22695477]\n    Bc = [12345, 1013904223, 7, 99991, 31337, 424242, 1, 3]\n    def sig(s):\n        return [min((A[i] * v + Bc[i]) % P for v in s) for i in range(k)]\n    a, b = x['A'], x['B']\n    if not a and not b:\n        return [[], [], None]\n    if not a or not b:\n        return [sig(a) if a else [], sig(b) if b else [], 0.0]\n    sa, sb = sig(a), sig(b)\n    matches = sum(1 for i in range(k) if sa[i] == sb[i])\n    return [sa, sb, round(matches / k, 4)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['overlapping sets k=4',\n   {'A': [185, 180, 93, 45, 14, 71, 154, 36, 166],\n    'B': [45, 14, 71, 154, 36, 166, 145, 34, 146, 221],\n    'k': 4},\n   [[139386205, 618166001, 69675629, 268535474], [51964590, 359609062, 69675629, 268535474], 0.5]],\n  ['overlapping sets k=6',\n   {'A': [137, 9, 132, 163, 55, 20, 170, 179, 119],\n    'B': [163, 55, 20, 170, 179, 119, 47, 41, 24, 251],\n    'k': 6},\n   [[321824033, 87781176, 406660754, 805406688, 307613469, 235695117],\n    [146980803, 87781176, 509981506, 134317810, 307613469, 97986032],\n    0.3333]],\n  ['overlapping sets k=8',\n   {'A': [148, 51, 156, 91, 149, 73, 41, 176, 152],\n    'B': [91, 149, 73, 41, 176, 152, 140, 118, 113, 264],\n    'k': 8},\n   [[111511433, 27093348, 898627007, 100332, 76137897, 413810294, 2831830, 930514560],\n    [143183504, 27093348, 898627007, 100332, 110223490, 114735638, 2831830, 417105257],\n    0.5]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [6, 9], 'B': [], 'k': 3}, [[178652874, 145934324, 1397215521], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 14], 'B': [14, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 268535474, 497068074],\n    [238199717, 8753041, 431298261, 268535474, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000001, 7, 99], 'B': [1000000001, 8], 'k': 4},\n   [[651916080, 56169922, 661849663, 1208059556],\n    [238199717, 480984718, 431298261, 1073841830],\n    0.0]]],\n [['overlapping sets k=4',\n   {'A': [77, 180, 129, 27, 120, 79, 147, 135, 166],\n    'B': [27, 120, 79, 147, 135, 166, 178, 114, 109, 210],\n    'k': 4},\n   [[619558248, 314726861, 27022876, 134317872], [24089818, 314726861, 27022876, 134317872], 0.75]],\n  ['overlapping sets k=6',\n   {'A': [43, 26, 163, 158, 61, 6, 58, 100, 105],\n    'B': [158, 61, 6, 58, 100, 105, 18, 10, 87, 294],\n    'k': 6},\n   [[178652874, 87781176, 327977509, 268535753, 216447956, 481067515],\n    [163463678, 193351205, 604294635, 268535753, 216447956, 272647769],\n    0.3333]],\n  ['overlapping sets k=8',\n   {'A': [119, 125, 38, 35, 22, 123, 186, 169, 60],\n    'B': [35, 22, 123, 186, 169, 60, 55, 134, 69, 203],\n    'k': 8},\n   [[321824033, 24558668, 112328382, 402753417, 72170210, 94532592, 1519519, 499300497],\n    [440917719, 24558668, 112328382, 536971019, 72170210, 87884509, 1519519, 312214540],\n    0.5]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [7, 9], 'B': [], 'k': 3}, [[1282168119, 145934324, 914256891], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 15], 'B': [15, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 134317748, 337731375],\n    [238199717, 8753041, 431298261, 134317748, 337731375],\n    1.0]],\n  ['large values',\n   {'A': [1000000002, 7, 99], 'B': [1000000002, 8], 'k': 4},\n   [[1282168119, 56169922, 178891033, 1208059556],\n    [238199717, 480984718, 178891033, 1073841830],\n    0.25]]],\n [['overlapping sets k=4',\n   {'A': [21, 131, 85, 16, 192, 176, 186, 106, 14],\n    'B': [16, 192, 176, 186, 106, 14, 154, 67, 112, 276],\n    'k': 4},\n   [[416840246, 27093348, 345992755, 100022], [290151962, 27093348, 345992755, 100022], 0.75]],\n  ['overlapping sets k=6',\n   {'A': [17, 173, 195, 128, 127, 162, 64, 34, 2],\n    'B': [128, 127, 162, 64, 34, 2, 4, 31, 120, 261],\n    'k': 6},\n   [[59559188, 103586803, 200019250, 100115, 95164537, 302952338],\n    [59559188, 343803435, 27022876, 100115, 125282443, 302952338],\n    0.5]],\n  ['overlapping sets k=8',\n   {'A': [104, 160, 182, 180, 79, 129, 139, 39, 130],\n    'B': [180, 79, 129, 139, 39, 130, 181, 110, 50, 200],\n    'k': 8},\n   [[87433960, 164274631, 36030499, 100301, 19057977, 161789813, 2693692, 212845964],\n    [20292519, 314726861, 45038122, 134317872, 19057977, 161789813, 2693692, 244128109],\n    0.375]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [8, 9], 'B': [], 'k': 3}, [[238199717, 145934324, 431298261], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 16], 'B': [16, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 100022, 497068074],\n    [238199717, 8753041, 431298261, 100022, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000003, 7, 99], 'B': [1000000003, 8], 'k': 4},\n   [[711462923, 56169922, 914256891, 1208059556],\n    [238199717, 318725747, 431298261, 1073841830],\n    0.0]]],\n [['overlapping sets k=4',\n   {'A': [47, 135, 53, 125, 192, 104, 165, 180, 91],\n    'B': [125, 192, 104, 165, 180, 91, 144, 142, 45, 255],\n    'k': 4},\n   [[325621332, 298921234, 172996381, 100363], [76042063, 11287721, 139351251, 100270], 0.0]],\n  ['overlapping sets k=6',\n   {'A': [37, 42, 89, 127, 77, 170, 4, 111, 27],\n    'B': [127, 77, 170, 4, 111, 27, 20, 114, 70, 228],\n    'k': 6},\n   [[27887117, 330532488, 78683252, 134317934, 178394676, 329803467],\n    [83636661, 330532488, 78683252, 134317934, 144309083, 104634115],\n    0.5]],\n  ['overlapping sets k=8',\n   {'A': [67, 151, 142, 156, 93, 90, 105, 112, 40],\n    'B': [156, 93, 90, 105, 112, 40, 161, 43, 152, 287],\n    'k': 8},\n   [[349698805, 40364295, 9007630, 100208, 76137897, 255898163, 2762761, 235541441],\n    [206527646, 193351205, 9007630, 100208, 76137897, 366756119, 2762761, 71150961],\n    0.5]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [9, 9], 'B': [], 'k': 3}, [[1341714962, 145934324, 2095823278], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 17], 'B': [17, 8, 3], 'k': 5},\n   [[238199717, 8753041, 379637885, 1073841830, 497068074],\n    [238199717, 8753041, 379637885, 1073841830, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000004, 7, 99], 'B': [1000000004, 8], 'k': 4},\n   [[1282168119, 56169922, 914256891, 1208059556],\n    [238199717, 480984718, 431298261, 1073841830],\n    0.0]]],\n [['overlapping sets k=4',\n   {'A': [38, 155, 109, 179, 16, 111, 170, 114, 19],\n    'B': [179, 16, 111, 170, 114, 19, 18, 198, 125, 300],\n    'k': 4},\n   [[24089818, 330532488, 78683252, 100022], [83636661, 330532488, 78683252, 100022], 0.75]],\n  ['overlapping sets k=6',\n   {'A': [10, 150, 23, 4, 69, 99, 130, 93, 198],\n    'B': [4, 69, 99, 130, 93, 198, 145, 154, 30, 206],\n    'k': 6},\n   [[119106031, 56169922, 182004004, 402753355, 231506909, 423911817],\n    [119106031, 56169922, 182004004, 268535505, 375784655, 423911817],\n    0.6667]],\n  ['overlapping sets k=8',\n   {'A': [58, 185, 14, 110, 196, 126, 6, 158, 12],\n    'B': [110, 196, 126, 6, 158, 12, 124, 92, 187, 209],\n    'k': 8},\n   [[139386205, 618166001, 561641882, 268535474, 303645782, 450762946, 414415, 136172865],\n    [178652874, 254039033, 242672003, 268535660, 201389003, 198742465, 414415, 136172865],\n    0.25]],\n  ['both empty', {'A': [], 'B': [], 'k': 4}, [[], [], None]],\n  ['one empty', {'A': [10, 9], 'B': [], 'k': 3}, [[297746560, 145934324, 1612864648], [], 0.0]],\n  ['identical sets',\n   {'A': [3, 8, 18], 'B': [18, 8, 3], 'k': 5},\n   [[238199717, 8753041, 431298261, 1073841830, 497068074],\n    [238199717, 8753041, 431298261, 1073841830, 497068074],\n    1.0]],\n  ['large values',\n   {'A': [1000000005, 7, 99], 'B': [1000000005, 8], 'k': 4},\n   [[771009766, 56169922, 877498790, 1208059556],\n    [238199717, 480984718, 431298261, 1073841830],\n    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-minhash-jaccard-one-empty","generated_at":"2026-09-29T14:48:45.359942+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Near-duplicate detection and set-similarity joins compare MinHash signatures instead of the sets; signature and comparison rules must match exactly across producers.","repair":"Return 0.0 with the non-empty signature when exactly one set is empty.","root_cause":"The single-empty case returns None although the Jaccard similarity is exactly 0.","sha256":"38dcfdfddbbf34faedd88eb543af69420d6c646ce931fcfd5db6cf1f47c381ed","title":"MinHash Jaccard estimation: one empty set reports undefined similarity · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.843,"exit_code":1,"observations":[{"actual":[[139386205,618166001,69675629,268535474],[51964590,359609062,69675629,268535474],0.5],"check":"overlapping sets k=4","expected":[[139386205,618166001,69675629,268535474],[51964590,359609062,69675629,268535474],0.5],"passed":true},{"actual":[[321824033,87781176,406660754,805406688,307613469,235695117],[146980803,87781176,509981506,134317810,307613469,97986032],0.3333],"check":"overlapping sets k=6","expected":[[321824033,87781176,406660754,805406688,307613469,235695117],[146980803,87781176,509981506,134317810,307613469,97986032],0.3333],"passed":true},{"actual":[[111511433,27093348,898627007,100332,76137897,413810294,2831830,930514560],[143183504,27093348,898627007,100332,110223490,114735638,2831830,417105257],0.5],"check":"overlapping sets k=8","expected":[[111511433,27093348,898627007,100332,76137897,413810294,2831830,930514560],[143183504,27093348,898627007,100332,110223490,114735638,2831830,417105257],0.5],"passed":true},{"actual":[[],[],null],"check":"both empty","expected":[[],[],null],"passed":true},{"actual":[[],[],0.0],"check":"one empty","expected":[[178652874,145934324,1397215521],[],0.0],"passed":false},{"actual":[[238199717,8753041,431298261,268535474,497068074],[238199717,8753041,431298261,268535474,497068074],1.0],"check":"identical sets","expected":[[238199717,8753041,431298261,268535474,497068074],[238199717,8753041,431298261,268535474,497068074],1.0],"passed":true},{"actual":[[651916080,56169922,661849663,1208059556],[238199717,480984718,431298261,1073841830],0.0],"check":"large values","expected":[[651916080,56169922,661849663,1208059556],[238199717,480984718,431298261,1073841830],0.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"overlapping sets k=4\", \"actual\": [[139386205, 618166001, 69675629, 268535474], [51964590, 359609062, 69675629, 268535474], 0.5], \"expected\": [[139386205, 618166001, 69675629, 268535474], [51964590, 359609062, 69675629, 268535474], 0.5], \"passed\": true}, {\"check\": \"overlapping sets k=6\", \"actual\": [[321824033, 87781176, 406660754, 805406688, 307613469, 235695117], [146980803, 87781176, 509981506, 134317810, 307613469, 97986032], 0.3333], \"expected\": [[321824033, 87781176, 406660754, 805406688, 307613469, 235695117], [146980803, 87781176, 509981506, 134317810, 307613469, 97986032], 0.3333], \"passed\": true}, {\"check\": \"overlapping sets k=8\", \"actual\": [[111511433, 27093348, 898627007, 100332, 76137897, 413810294, 2831830, 930514560], [143183504, 27093348, 898627007, 100332, 110223490, 114735638, 2831830, 417105257], 0.5], \"expected\": [[111511433, 27093348, 898627007, 100332, 76137897, 413810294, 2831830, 930514560], [143183504, 27093348, 898627007, 100332, 110223490, 114735638, 2831830, 417105257], 0.5], \"passed\": true}, {\"check\": \"both empty\", \"actual\": [[], [], null], \"expected\": [[], [], null], \"passed\": true}, {\"check\": \"one empty\", \"actual\": [[], [], 0.0], \"expected\": [[178652874, 145934324, 1397215521], [], 0.0], \"passed\": false}, {\"check\": \"identical sets\", \"actual\": [[238199717, 8753041, 431298261, 268535474, 497068074], [238199717, 8753041, 431298261, 268535474, 497068074], 1.0], \"expected\": [[238199717, 8753041, 431298261, 268535474, 497068074], [238199717, 8753041, 431298261, 268535474, 497068074], 1.0], \"passed\": true}, {\"check\": \"large values\", \"actual\": [[651916080, 56169922, 661849663, 1208059556], [238199717, 480984718, 431298261, 1073841830], 0.0], \"expected\": [[651916080, 56169922, 661849663, 1208059556], [238199717, 480984718, 431298261, 1073841830], 0.0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.278,"exit_code":1,"observations":[{"actual":[[139386205,618166001,69675629,268535474],[51964590,359609062,69675629,268535474],0.5],"check":"overlapping sets k=4","expected":[[139386205,618166001,69675629,268535474],[51964590,359609062,69675629,268535474],0.5],"passed":true},{"actual":[[321824033,87781176,406660754,805406688,307613469,235695117],[146980803,87781176,509981506,134317810,307613469,97986032],0.3333],"check":"overlapping sets k=6","expected":[[321824033,87781176,406660754,805406688,307613469,235695117],[146980803,87781176,509981506,134317810,307613469,97986032],0.3333],"passed":true},{"actual":[[111511433,27093348,898627007,100332,76137897,413810294,2831830,930514560],[143183504,27093348,898627007,100332,110223490,114735638,2831830,417105257],0.5],"check":"overlapping sets k=8","expected":[[111511433,27093348,898627007,100332,76137897,413810294,2831830,930514560],[143183504,27093348,898627007,100332,110223490,114735638,2831830,417105257],0.5],"passed":true},{"actual":[[],[],null],"check":"both empty","expected":[[],[],null],"passed":true},{"actual":[[178652874,145934324,1397215521],[],null],"check":"one empty","expected":[[178652874,145934324,1397215521],[],0.0],"passed":false},{"actual":[[238199717,8753041,431298261,268535474,497068074],[238199717,8753041,431298261,268535474,497068074],1.0],"check":"identical sets","expected":[[238199717,8753041,431298261,268535474,497068074],[238199717,8753041,431298261,268535474,497068074],1.0],"passed":true},{"actual":[[651916080,56169922,661849663,1208059556],[238199717,480984718,431298261,1073841830],0.0],"check":"large values","expected":[[651916080,56169922,661849663,1208059556],[238199717,480984718,431298261,1073841830],0.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"overlapping sets k=4\", \"actual\": [[139386205, 618166001, 69675629, 268535474], [51964590, 359609062, 69675629, 268535474], 0.5], \"expected\": [[139386205, 618166001, 69675629, 268535474], [51964590, 359609062, 69675629, 268535474], 0.5], \"passed\": true}, {\"check\": \"overlapping sets k=6\", \"actual\": [[321824033, 87781176, 406660754, 805406688, 307613469, 235695117], [146980803, 87781176, 509981506, 134317810, 307613469, 97986032], 0.3333], \"expected\": [[321824033, 87781176, 406660754, 805406688, 307613469, 235695117], [146980803, 87781176, 509981506, 134317810, 307613469, 97986032], 0.3333], \"passed\": true}, {\"check\": \"overlapping sets k=8\", \"actual\": [[111511433, 27093348, 898627007, 100332, 76137897, 413810294, 2831830, 930514560], [143183504, 27093348, 898627007, 100332, 110223490, 114735638, 2831830, 417105257], 0.5], \"expected\": [[111511433, 27093348, 898627007, 100332, 76137897, 413810294, 2831830, 930514560], [143183504, 27093348, 898627007, 100332, 110223490, 114735638, 2831830, 417105257], 0.5], \"passed\": true}, {\"check\": \"both empty\", \"actual\": [[], [], null], \"expected\": [[], [], null], \"passed\": true}, {\"check\": \"one empty\", \"actual\": [[178652874, 145934324, 1397215521], [], null], \"expected\": [[178652874, 145934324, 1397215521], [], 0.0], \"passed\": false}, {\"check\": \"identical sets\", \"actual\": [[238199717, 8753041, 431298261, 268535474, 497068074], [238199717, 8753041, 431298261, 268535474, 497068074], 1.0], \"expected\": [[238199717, 8753041, 431298261, 268535474, 497068074], [238199717, 8753041, 431298261, 268535474, 497068074], 1.0], \"passed\": true}, {\"check\": \"large values\", \"actual\": [[651916080, 56169922, 661849663, 1208059556], [238199717, 480984718, 431298261, 1073841830], 0.0], \"expected\": [[651916080, 56169922, 661849663, 1208059556], [238199717, 480984718, 431298261, 1073841830], 0.0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.513,"exit_code":0,"observations":[{"actual":[[139386205,618166001,69675629,268535474],[51964590,359609062,69675629,268535474],0.5],"check":"overlapping sets k=4","expected":[[139386205,618166001,69675629,268535474],[51964590,359609062,69675629,268535474],0.5],"passed":true},{"actual":[[321824033,87781176,406660754,805406688,307613469,235695117],[146980803,87781176,509981506,134317810,307613469,97986032],0.3333],"check":"overlapping sets k=6","expected":[[321824033,87781176,406660754,805406688,307613469,235695117],[146980803,87781176,509981506,134317810,307613469,97986032],0.3333],"passed":true},{"actual":[[111511433,27093348,898627007,100332,76137897,413810294,2831830,930514560],[143183504,27093348,898627007,100332,110223490,114735638,2831830,417105257],0.5],"check":"overlapping sets k=8","expected":[[111511433,27093348,898627007,100332,76137897,413810294,2831830,930514560],[143183504,27093348,898627007,100332,110223490,114735638,2831830,417105257],0.5],"passed":true},{"actual":[[],[],null],"check":"both empty","expected":[[],[],null],"passed":true},{"actual":[[178652874,145934324,1397215521],[],0.0],"check":"one empty","expected":[[178652874,145934324,1397215521],[],0.0],"passed":true},{"actual":[[238199717,8753041,431298261,268535474,497068074],[238199717,8753041,431298261,268535474,497068074],1.0],"check":"identical sets","expected":[[238199717,8753041,431298261,268535474,497068074],[238199717,8753041,431298261,268535474,497068074],1.0],"passed":true},{"actual":[[651916080,56169922,661849663,1208059556],[238199717,480984718,431298261,1073841830],0.0],"check":"large values","expected":[[651916080,56169922,661849663,1208059556],[238199717,480984718,431298261,1073841830],0.0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"overlapping sets k=4\", \"actual\": [[139386205, 618166001, 69675629, 268535474], [51964590, 359609062, 69675629, 268535474], 0.5], \"expected\": [[139386205, 618166001, 69675629, 268535474], [51964590, 359609062, 69675629, 268535474], 0.5], \"passed\": true}, {\"check\": \"overlapping sets k=6\", \"actual\": [[321824033, 87781176, 406660754, 805406688, 307613469, 235695117], [146980803, 87781176, 509981506, 134317810, 307613469, 97986032], 0.3333], \"expected\": [[321824033, 87781176, 406660754, 805406688, 307613469, 235695117], [146980803, 87781176, 509981506, 134317810, 307613469, 97986032], 0.3333], \"passed\": true}, {\"check\": \"overlapping sets k=8\", \"actual\": [[111511433, 27093348, 898627007, 100332, 76137897, 413810294, 2831830, 930514560], [143183504, 27093348, 898627007, 100332, 110223490, 114735638, 2831830, 417105257], 0.5], \"expected\": [[111511433, 27093348, 898627007, 100332, 76137897, 413810294, 2831830, 930514560], [143183504, 27093348, 898627007, 100332, 110223490, 114735638, 2831830, 417105257], 0.5], \"passed\": true}, {\"check\": \"both empty\", \"actual\": [[], [], null], \"expected\": [[], [], null], \"passed\": true}, {\"check\": \"one empty\", \"actual\": [[178652874, 145934324, 1397215521], [], 0.0], \"expected\": [[178652874, 145934324, 1397215521], [], 0.0], \"passed\": true}, {\"check\": \"identical sets\", \"actual\": [[238199717, 8753041, 431298261, 268535474, 497068074], [238199717, 8753041, 431298261, 268535474, 497068074], 1.0], \"expected\": [[238199717, 8753041, 431298261, 268535474, 497068074], [238199717, 8753041, 431298261, 268535474, 497068074], 1.0], \"passed\": true}, {\"check\": \"large values\", \"actual\": [[651916080, 56169922, 661849663, 1208059556], [238199717, 480984718, 431298261, 1073841830], 0.0], \"expected\": [[651916080, 56169922, 661849663, 1208059556], [238199717, 480984718, 431298261, 1073841830], 0.0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}