diff --git a/.openresearch/artifacts/prime_sidon_dag.json b/.openresearch/artifacts/prime_sidon_dag.json new file mode 100644 index 00000000..bb33d9c5 --- /dev/null +++ b/.openresearch/artifacts/prime_sidon_dag.json @@ -0,0 +1,3392 @@ +{ + "nodes": [ + { + "id": "bounds_s5", + "type": "analytical_bounds", + "inputs": { + "size": 5, + "lower_bound": 0.36, + "upper_bound": 0.6 + }, + "result": { + "lower": 0.36, + "upper": 0.6 + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.4632814 + }, + { + "id": "bounds_s6", + "type": "analytical_bounds", + "inputs": { + "size": 6, + "lower_bound": 0.3056, + "upper_bound": 0.5833 + }, + "result": { + "lower": 0.3056, + "upper": 0.5833 + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.4632938 + }, + { + "id": "bounds_s7", + "type": "analytical_bounds", + "inputs": { + "size": 7, + "lower_bound": 0.2653, + "upper_bound": 0.5714 + }, + "result": { + "lower": 0.2653, + "upper": 0.5714 + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.4632998 + }, + { + "id": "bounds_s8", + "type": "analytical_bounds", + "inputs": { + "size": 8, + "lower_bound": 0.2344, + "upper_bound": 0.5625 + }, + "result": { + "lower": 0.2344, + "upper": 0.5625 + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.4633026 + }, + { + "id": "bounds_s10", + "type": "analytical_bounds", + "inputs": { + "size": 10, + "lower_bound": 0.19, + "upper_bound": 0.55 + }, + "result": { + "lower": 0.19, + "upper": 0.55 + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.4633055 + }, + { + "id": "sidon_pow2_s5", + "type": "reference", + "inputs": { + "type": "sidon_pow2", + "size": 5, + "labels": [ + 1, + 2, + 4, + 8, + 16 + ] + }, + "result": { + "n": 5, + "total_pairs": 25, + "distinct_sums": 15, + "sidon_score": 0.6, + "max_degeneracy": 2, + "collision_count": 10, + "collision_entropy": 3.8439, + "collision_histogram": { + "3": 2, + "5": 2, + "9": 2, + "17": 2, + "6": 2, + "10": 2, + "18": 2, + "12": 2, + "20": 2, + "24": 2 + } + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.463362 + }, + { + "id": "nonsidon_seq_s5", + "type": "reference", + "inputs": { + "type": "nonsidon_consecutive", + "size": 5, + "labels": [ + 1, + 2, + 3, + 4, + 5 + ] + }, + "result": { + "n": 5, + "total_pairs": 25, + "distinct_sums": 9, + "sidon_score": 0.36, + "max_degeneracy": 5, + "collision_count": 7, + "collision_entropy": 2.9991, + "collision_histogram": { + "3": 2, + "4": 3, + "5": 4, + "6": 5, + "7": 4, + "8": 3, + "9": 2 + } + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.463386 + }, + { + "id": "sidon_pow2_s6", + "type": "reference", + "inputs": { + "type": "sidon_pow2", + "size": 6, + "labels": [ + 1, + 2, + 4, + 8, + 16, + 32 + ] + }, + "result": { + "n": 6, + "total_pairs": 36, + "distinct_sums": 21, + "sidon_score": 0.583333, + "max_degeneracy": 2, + "collision_count": 15, + "collision_entropy": 4.3366, + "collision_histogram": { + "3": 2, + "5": 2, + "9": 2, + "17": 2, + "33": 2, + "6": 2, + "10": 2, + "18": 2, + "34": 2, + "12": 2, + "20": 2, + "36": 2, + "24": 2, + "40": 2, + "48": 2 + } + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.463407 + }, + { + "id": "nonsidon_seq_s6", + "type": "reference", + "inputs": { + "type": "nonsidon_consecutive", + "size": 6, + "labels": [ + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + "result": { + "n": 6, + "total_pairs": 36, + "distinct_sums": 11, + "sidon_score": 0.305556, + "max_degeneracy": 6, + "collision_count": 9, + "collision_entropy": 3.2744, + "collision_histogram": { + "3": 2, + "4": 3, + "5": 4, + "6": 5, + "7": 6, + "8": 5, + "9": 4, + "10": 3, + "11": 2 + } + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.4634237 + }, + { + "id": "sidon_pow2_s7", + "type": "reference", + "inputs": { + "type": "sidon_pow2", + "size": 7, + "labels": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64 + ] + }, + "result": { + "n": 7, + "total_pairs": 49, + "distinct_sums": 28, + "sidon_score": 0.571429, + "max_degeneracy": 2, + "collision_count": 21, + "collision_entropy": 4.7576, + "collision_histogram": { + "3": 2, + "5": 2, + "9": 2, + "17": 2, + "33": 2, + "65": 2, + "6": 2, + "10": 2, + "18": 2, + "34": 2, + "66": 2, + "12": 2, + "20": 2, + "36": 2, + "68": 2, + "24": 2, + "40": 2, + "72": 2, + "48": 2, + "80": 2, + "96": 2 + } + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.463446 + }, + { + "id": "nonsidon_seq_s7", + "type": "reference", + "inputs": { + "type": "nonsidon_consecutive", + "size": 7, + "labels": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "result": { + "n": 7, + "total_pairs": 49, + "distinct_sums": 13, + "sidon_score": 0.265306, + "max_degeneracy": 7, + "collision_count": 11, + "collision_entropy": 3.5045, + "collision_histogram": { + "3": 2, + "4": 3, + "5": 4, + "6": 5, + "7": 6, + "8": 7, + "9": 6, + "10": 5, + "11": 4, + "12": 3, + "13": 2 + } + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.4634626 + }, + { + "id": "sidon_pow2_s8", + "type": "reference", + "inputs": { + "type": "sidon_pow2", + "size": 8, + "labels": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128 + ] + }, + "result": { + "n": 8, + "total_pairs": 64, + "distinct_sums": 36, + "sidon_score": 0.5625, + "max_degeneracy": 2, + "collision_count": 28, + "collision_entropy": 5.125, + "collision_histogram": { + "3": 2, + "5": 2, + "9": 2, + "17": 2, + "33": 2, + "65": 2, + "129": 2, + "6": 2, + "10": 2, + "18": 2, + "34": 2, + "66": 2, + "130": 2, + "12": 2, + "20": 2, + "36": 2, + "68": 2, + "132": 2, + "24": 2, + "40": 2, + "72": 2, + "136": 2, + "48": 2, + "80": 2, + "144": 2, + "96": 2, + "160": 2, + "192": 2 + } + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.463489 + }, + { + "id": "nonsidon_seq_s8", + "type": "reference", + "inputs": { + "type": "nonsidon_consecutive", + "size": 8, + "labels": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "result": { + "n": 8, + "total_pairs": 64, + "distinct_sums": 15, + "sidon_score": 0.234375, + "max_degeneracy": 8, + "collision_count": 13, + "collision_entropy": 3.7023, + "collision_histogram": { + "3": 2, + "4": 3, + "5": 4, + "6": 5, + "7": 6, + "8": 7, + "9": 8, + "10": 7, + "11": 6, + "12": 5, + "13": 4, + "14": 3, + "15": 2 + } + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.4635081 + }, + { + "id": "sidon_pow2_s10", + "type": "reference", + "inputs": { + "type": "sidon_pow2", + "size": 10, + "labels": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256, + 512 + ] + }, + "result": { + "n": 10, + "total_pairs": 100, + "distinct_sums": 55, + "sidon_score": 0.55, + "max_degeneracy": 2, + "collision_count": 45, + "collision_entropy": 5.7439, + "collision_histogram": { + "3": 2, + "5": 2, + "9": 2, + "17": 2, + "33": 2, + "65": 2, + "129": 2, + "257": 2, + "513": 2, + "6": 2, + "10": 2, + "18": 2, + "34": 2, + "66": 2, + "130": 2, + "258": 2, + "514": 2, + "12": 2, + "20": 2, + "36": 2, + "68": 2, + "132": 2, + "260": 2, + "516": 2, + "24": 2, + "40": 2, + "72": 2, + "136": 2, + "264": 2, + "520": 2, + "48": 2, + "80": 2, + "144": 2, + "272": 2, + "528": 2, + "96": 2, + "160": 2, + "288": 2, + "544": 2, + "192": 2, + "320": 2, + "576": 2, + "384": 2, + "640": 2, + "768": 2 + } + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.4635487 + }, + { + "id": "nonsidon_seq_s10", + "type": "reference", + "inputs": { + "type": "nonsidon_consecutive", + "size": 10, + "labels": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10 + ] + }, + "result": { + "n": 10, + "total_pairs": 100, + "distinct_sums": 19, + "sidon_score": 0.19, + "max_degeneracy": 10, + "collision_count": 17, + "collision_entropy": 4.0306, + "collision_histogram": { + "3": 2, + "4": 3, + "5": 4, + "6": 5, + "7": 6, + "8": 7, + "9": 8, + "10": 9, + "11": 10, + "12": 9, + "13": 8, + "14": 7, + "15": 6, + "16": 5, + "17": 4, + "18": 3, + "19": 2 + } + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120468.4635704 + }, + { + "id": "primes_small_s5", + "type": "prime_set", + "inputs": { + "size": 5, + "scale": "small", + "labels": [ + 2, + 3, + 5, + 7, + 11 + ], + "range": [ + 2, + 11 + ], + "null_trials": 1000 + }, + "result": { + "n": 5, + "total_pairs": 25, + "distinct_sums": 13, + "sidon_score": 0.52, + "max_degeneracy": 3, + "collision_count": 10, + "collision_entropy": 3.6235, + "collision_histogram": { + "5": 2, + "7": 2, + "9": 2, + "13": 2, + "8": 2, + "10": 3, + "14": 3, + "12": 2, + "16": 2, + "18": 2 + }, + "null_distribution": { + "mean": 0.4881, + "std": 0.0442, + "p5": 0.4, + "p50": 0.48, + "p95": 0.56, + "trials": 1000 + }, + "p_value_two_sided": 0.806, + "effect_size": 0.0319, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0297, + "timestamp": 1783120468.8049326 + }, + { + "id": "primes_small_s6", + "type": "prime_set", + "inputs": { + "size": 6, + "scale": "small", + "labels": [ + 2, + 3, + 5, + 7, + 11, + 13 + ], + "range": [ + 2, + 13 + ], + "null_trials": 1000 + }, + "result": { + "n": 6, + "total_pairs": 36, + "distinct_sums": 17, + "sidon_score": 0.472222, + "max_degeneracy": 4, + "collision_count": 13, + "collision_entropy": 3.9613, + "collision_histogram": { + "5": 2, + "7": 2, + "9": 2, + "13": 2, + "15": 2, + "8": 2, + "10": 3, + "14": 3, + "16": 4, + "12": 2, + "18": 4, + "20": 2, + "24": 2 + }, + "null_distribution": { + "mean": 0.4369, + "std": 0.0408, + "p5": 0.3611, + "p50": 0.4444, + "p95": 0.5, + "trials": 1000 + }, + "p_value_two_sided": 0.668, + "effect_size": 0.0353, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0344, + "timestamp": 1783120469.1452806 + }, + { + "id": "primes_small_s7", + "type": "prime_set", + "inputs": { + "size": 7, + "scale": "small", + "labels": [ + 2, + 3, + 5, + 7, + 11, + 13, + 17 + ], + "range": [ + 2, + 17 + ], + "null_trials": 1000 + }, + "result": { + "n": 7, + "total_pairs": 49, + "distinct_sums": 21, + "sidon_score": 0.428571, + "max_degeneracy": 4, + "collision_count": 17, + "collision_entropy": 4.2624, + "collision_histogram": { + "5": 2, + "7": 2, + "9": 2, + "13": 2, + "15": 2, + "19": 2, + "8": 2, + "10": 3, + "14": 3, + "16": 4, + "20": 4, + "12": 2, + "18": 4, + "22": 3, + "24": 4, + "28": 2, + "30": 2 + }, + "null_distribution": { + "mean": 0.4191, + "std": 0.0352, + "p5": 0.3673, + "p50": 0.4286, + "p95": 0.4694, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": 0.0095, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0411, + "timestamp": 1783120469.4886904 + }, + { + "id": "primes_small_s8", + "type": "prime_set", + "inputs": { + "size": 8, + "scale": "small", + "labels": [ + 2, + 3, + 5, + 7, + 11, + 13, + 17, + 19 + ], + "range": [ + 2, + 19 + ], + "null_trials": 1000 + }, + "result": { + "n": 8, + "total_pairs": 64, + "distinct_sums": 25, + "sidon_score": 0.390625, + "max_degeneracy": 6, + "collision_count": 21, + "collision_entropy": 4.4784, + "collision_histogram": { + "5": 2, + "7": 2, + "9": 2, + "13": 2, + "15": 2, + "19": 2, + "21": 2, + "8": 2, + "10": 3, + "14": 3, + "16": 4, + "20": 4, + "22": 5, + "12": 2, + "18": 4, + "24": 6, + "26": 3, + "28": 2, + "30": 4, + "32": 2, + "36": 2 + }, + "null_distribution": { + "mean": 0.3822, + "std": 0.0326, + "p5": 0.3281, + "p50": 0.3906, + "p95": 0.4375, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": 0.0084, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0475, + "timestamp": 1783120469.8475132 + }, + { + "id": "primes_small_s10", + "type": "prime_set", + "inputs": { + "size": 10, + "scale": "small", + "labels": [ + 2, + 3, + 5, + 7, + 11, + 13, + 17, + 19, + 23, + 29 + ], + "range": [ + 2, + 29 + ], + "null_trials": 1000 + }, + "result": { + "n": 10, + "total_pairs": 100, + "distinct_sums": 33, + "sidon_score": 0.33, + "max_degeneracy": 6, + "collision_count": 29, + "collision_entropy": 4.8676, + "collision_histogram": { + "5": 2, + "7": 2, + "9": 2, + "13": 2, + "15": 2, + "19": 2, + "21": 2, + "25": 2, + "31": 2, + "8": 2, + "10": 3, + "14": 3, + "16": 4, + "20": 4, + "22": 5, + "26": 5, + "32": 4, + "12": 2, + "18": 4, + "24": 6, + "28": 4, + "34": 5, + "30": 6, + "36": 6, + "40": 4, + "42": 4, + "46": 3, + "48": 2, + "52": 2 + }, + "null_distribution": { + "mean": 0.365, + "std": 0.0275, + "p5": 0.32, + "p50": 0.37, + "p95": 0.41, + "trials": 1000 + }, + "p_value_two_sided": 0.298, + "effect_size": -0.035, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0636, + "timestamp": 1783120470.213078 + }, + { + "id": "primes_kilo_s5", + "type": "prime_set", + "inputs": { + "size": 5, + "scale": "kilo", + "labels": [ + 1009, + 1013, + 1019, + 1021, + 1031 + ], + "range": [ + 1009, + 1031 + ], + "null_trials": 1000 + }, + "result": { + "n": 5, + "total_pairs": 25, + "distinct_sums": 14, + "sidon_score": 0.56, + "max_degeneracy": 4, + "collision_count": 9, + "collision_entropy": 3.6839, + "collision_histogram": { + "2022": 2, + "2028": 2, + "2030": 2, + "2040": 4, + "2032": 2, + "2034": 2, + "2044": 2, + "2050": 2, + "2052": 2 + }, + "null_distribution": { + "mean": 0.5537, + "std": 0.0359, + "p5": 0.48, + "p50": 0.56, + "p95": 0.6, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": 0.0063, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0322, + "timestamp": 1783120470.5489564 + }, + { + "id": "primes_kilo_s6", + "type": "prime_set", + "inputs": { + "size": 6, + "scale": "kilo", + "labels": [ + 1009, + 1013, + 1019, + 1021, + 1031, + 1033 + ], + "range": [ + 1009, + 1033 + ], + "null_trials": 1000 + }, + "result": { + "n": 6, + "total_pairs": 36, + "distinct_sums": 18, + "sidon_score": 0.5, + "max_degeneracy": 4, + "collision_count": 13, + "collision_entropy": 4.0378, + "collision_histogram": { + "2022": 2, + "2028": 2, + "2030": 2, + "2040": 4, + "2042": 3, + "2032": 2, + "2034": 2, + "2044": 2, + "2046": 2, + "2050": 2, + "2052": 4, + "2054": 2, + "2064": 2 + }, + "null_distribution": { + "mean": 0.516, + "std": 0.0336, + "p5": 0.4444, + "p50": 0.5278, + "p95": 0.5556, + "trials": 1000 + }, + "p_value_two_sided": 0.844, + "effect_size": -0.016, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0415, + "timestamp": 1783120470.8916674 + }, + { + "id": "primes_kilo_s7", + "type": "prime_set", + "inputs": { + "size": 7, + "scale": "kilo", + "labels": [ + 1009, + 1013, + 1019, + 1021, + 1031, + 1033, + 1039 + ], + "range": [ + 1009, + 1039 + ], + "null_trials": 1000 + }, + "result": { + "n": 7, + "total_pairs": 49, + "distinct_sums": 24, + "sidon_score": 0.489796, + "max_degeneracy": 6, + "collision_count": 18, + "collision_entropy": 4.4256, + "collision_histogram": { + "2022": 2, + "2028": 2, + "2030": 2, + "2040": 4, + "2042": 3, + "2048": 2, + "2032": 2, + "2034": 2, + "2044": 2, + "2046": 2, + "2052": 6, + "2050": 2, + "2058": 2, + "2054": 2, + "2060": 2, + "2064": 2, + "2070": 2, + "2072": 2 + }, + "null_distribution": { + "mean": 0.4912, + "std": 0.0336, + "p5": 0.4286, + "p50": 0.4898, + "p95": 0.5306, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": -0.0014, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0479, + "timestamp": 1783120471.2387857 + }, + { + "id": "primes_kilo_s8", + "type": "prime_set", + "inputs": { + "size": 8, + "scale": "kilo", + "labels": [ + 1009, + 1013, + 1019, + 1021, + 1031, + 1033, + 1039, + 1049 + ], + "range": [ + 1009, + 1049 + ], + "null_trials": 1000 + }, + "result": { + "n": 8, + "total_pairs": 64, + "distinct_sums": 29, + "sidon_score": 0.453125, + "max_degeneracy": 6, + "collision_count": 23, + "collision_entropy": 4.7028, + "collision_histogram": { + "2022": 2, + "2028": 2, + "2030": 2, + "2040": 4, + "2042": 3, + "2048": 2, + "2058": 4, + "2032": 2, + "2034": 2, + "2044": 2, + "2046": 2, + "2052": 6, + "2062": 3, + "2050": 2, + "2068": 2, + "2054": 2, + "2060": 2, + "2070": 4, + "2064": 2, + "2080": 2, + "2072": 2, + "2082": 2, + "2088": 2 + }, + "null_distribution": { + "mean": 0.4793, + "std": 0.0286, + "p5": 0.4375, + "p50": 0.4844, + "p95": 0.5156, + "trials": 1000 + }, + "p_value_two_sided": 0.502, + "effect_size": -0.0262, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0576, + "timestamp": 1783120471.5968723 + }, + { + "id": "primes_kilo_s10", + "type": "prime_set", + "inputs": { + "size": 10, + "scale": "kilo", + "labels": [ + 1009, + 1013, + 1019, + 1021, + 1031, + 1033, + 1039, + 1049, + 1051, + 1061 + ], + "range": [ + 1009, + 1061 + ], + "null_trials": 1000 + }, + "result": { + "n": 10, + "total_pairs": 100, + "distinct_sums": 39, + "sidon_score": 0.39, + "max_degeneracy": 8, + "collision_count": 31, + "collision_entropy": 5.0586, + "collision_histogram": { + "2022": 2, + "2028": 2, + "2030": 2, + "2040": 4, + "2042": 3, + "2048": 2, + "2058": 4, + "2060": 4, + "2070": 8, + "2032": 2, + "2034": 2, + "2044": 2, + "2046": 2, + "2052": 6, + "2062": 3, + "2064": 4, + "2074": 2, + "2050": 2, + "2068": 2, + "2080": 4, + "2054": 2, + "2072": 4, + "2082": 6, + "2092": 2, + "2084": 2, + "2094": 2, + "2088": 2, + "2090": 2, + "2100": 4, + "2110": 2, + "2112": 2 + }, + "null_distribution": { + "mean": 0.4461, + "std": 0.0256, + "p5": 0.4, + "p50": 0.45, + "p95": 0.48, + "trials": 1000 + }, + "p_value_two_sided": 0.104, + "effect_size": -0.0561, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0795, + "timestamp": 1783120471.9800327 + }, + { + "id": "primes_million_s5", + "type": "prime_set", + "inputs": { + "size": 5, + "scale": "million", + "labels": [ + 1000003, + 1000033, + 1000037, + 1000039, + 1000081 + ], + "range": [ + 1000003, + 1000081 + ], + "null_trials": 1000 + }, + "result": { + "n": 5, + "total_pairs": 25, + "distinct_sums": 15, + "sidon_score": 0.6, + "max_degeneracy": 2, + "collision_count": 10, + "collision_entropy": 3.8439, + "collision_histogram": { + "2000036": 2, + "2000040": 2, + "2000042": 2, + "2000084": 2, + "2000070": 2, + "2000072": 2, + "2000114": 2, + "2000076": 2, + "2000118": 2, + "2000120": 2 + }, + "null_distribution": { + "mean": 0.5878, + "std": 0.02, + "p5": 0.56, + "p50": 0.6, + "p95": 0.6, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": 0.0122, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0347, + "timestamp": 1783120472.3185062 + }, + { + "id": "primes_million_s6", + "type": "prime_set", + "inputs": { + "size": 6, + "scale": "million", + "labels": [ + 1000003, + 1000033, + 1000037, + 1000039, + 1000081, + 1000099 + ], + "range": [ + 1000003, + 1000099 + ], + "null_trials": 1000 + }, + "result": { + "n": 6, + "total_pairs": 36, + "distinct_sums": 21, + "sidon_score": 0.583333, + "max_degeneracy": 2, + "collision_count": 15, + "collision_entropy": 4.3366, + "collision_histogram": { + "2000036": 2, + "2000040": 2, + "2000042": 2, + "2000084": 2, + "2000102": 2, + "2000070": 2, + "2000072": 2, + "2000114": 2, + "2000132": 2, + "2000076": 2, + "2000118": 2, + "2000136": 2, + "2000120": 2, + "2000138": 2, + "2000180": 2 + }, + "null_distribution": { + "mean": 0.566, + "std": 0.0203, + "p5": 0.5278, + "p50": 0.5556, + "p95": 0.5833, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": 0.0173, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0411, + "timestamp": 1783120472.6634493 + }, + { + "id": "primes_million_s7", + "type": "prime_set", + "inputs": { + "size": 7, + "scale": "million", + "labels": [ + 1000003, + 1000033, + 1000037, + 1000039, + 1000081, + 1000099, + 1000117 + ], + "range": [ + 1000003, + 1000117 + ], + "null_trials": 1000 + }, + "result": { + "n": 7, + "total_pairs": 49, + "distinct_sums": 26, + "sidon_score": 0.530612, + "max_degeneracy": 4, + "collision_count": 20, + "collision_entropy": 4.6197, + "collision_histogram": { + "2000036": 2, + "2000040": 2, + "2000042": 2, + "2000084": 2, + "2000102": 2, + "2000120": 4, + "2000070": 2, + "2000072": 2, + "2000114": 2, + "2000132": 2, + "2000150": 2, + "2000076": 2, + "2000118": 2, + "2000136": 2, + "2000154": 2, + "2000138": 2, + "2000156": 2, + "2000180": 2, + "2000198": 3, + "2000216": 2 + }, + "null_distribution": { + "mean": 0.5495, + "std": 0.0207, + "p5": 0.5102, + "p50": 0.551, + "p95": 0.5714, + "trials": 1000 + }, + "p_value_two_sided": 0.492, + "effect_size": -0.0189, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0512, + "timestamp": 1783120473.031353 + }, + { + "id": "primes_million_s8", + "type": "prime_set", + "inputs": { + "size": 8, + "scale": "million", + "labels": [ + 1000003, + 1000033, + 1000037, + 1000039, + 1000081, + 1000099, + 1000117, + 1000121 + ], + "range": [ + 1000003, + 1000121 + ], + "null_trials": 1000 + }, + "result": { + "n": 8, + "total_pairs": 64, + "distinct_sums": 33, + "sidon_score": 0.515625, + "max_degeneracy": 4, + "collision_count": 26, + "collision_entropy": 4.957, + "collision_histogram": { + "2000036": 2, + "2000040": 2, + "2000042": 2, + "2000084": 2, + "2000102": 2, + "2000120": 4, + "2000124": 2, + "2000070": 2, + "2000072": 2, + "2000114": 2, + "2000132": 2, + "2000150": 2, + "2000154": 4, + "2000076": 2, + "2000118": 2, + "2000136": 2, + "2000158": 2, + "2000138": 2, + "2000156": 2, + "2000160": 2, + "2000180": 2, + "2000198": 3, + "2000202": 2, + "2000216": 2, + "2000220": 2, + "2000238": 2 + }, + "null_distribution": { + "mean": 0.5343, + "std": 0.0202, + "p5": 0.5, + "p50": 0.5312, + "p95": 0.5625, + "trials": 1000 + }, + "p_value_two_sided": 0.504, + "effect_size": -0.0187, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0603, + "timestamp": 1783120473.4020586 + }, + { + "id": "primes_million_s10", + "type": "prime_set", + "inputs": { + "size": 10, + "scale": "million", + "labels": [ + 1000003, + 1000033, + 1000037, + 1000039, + 1000081, + 1000099, + 1000117, + 1000121, + 1000133, + 1000151 + ], + "range": [ + 1000003, + 1000151 + ], + "null_trials": 1000 + }, + "result": { + "n": 10, + "total_pairs": 100, + "distinct_sums": 48, + "sidon_score": 0.48, + "max_degeneracy": 6, + "collision_count": 39, + "collision_entropy": 5.4612, + "collision_histogram": { + "2000036": 2, + "2000040": 2, + "2000042": 2, + "2000084": 2, + "2000102": 2, + "2000120": 4, + "2000124": 2, + "2000136": 4, + "2000154": 6, + "2000070": 2, + "2000072": 2, + "2000114": 2, + "2000132": 2, + "2000150": 2, + "2000166": 2, + "2000184": 2, + "2000076": 2, + "2000118": 2, + "2000158": 2, + "2000170": 2, + "2000188": 2, + "2000138": 2, + "2000156": 2, + "2000160": 2, + "2000172": 2, + "2000190": 2, + "2000180": 2, + "2000198": 3, + "2000202": 2, + "2000214": 2, + "2000232": 4, + "2000216": 2, + "2000220": 2, + "2000250": 4, + "2000238": 2, + "2000268": 2, + "2000254": 2, + "2000272": 2, + "2000284": 2 + }, + "null_distribution": { + "mean": 0.5106, + "std": 0.0181, + "p5": 0.48, + "p50": 0.51, + "p95": 0.54, + "trials": 1000 + }, + "p_value_two_sided": 0.16, + "effect_size": -0.0306, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0822, + "timestamp": 1783120473.7883615 + }, + { + "id": "primes_billion_s5", + "type": "prime_set", + "inputs": { + "size": 5, + "scale": "billion", + "labels": [ + 1000000007, + 1000000009, + 1000000021, + 1000000033, + 1000000087 + ], + "range": [ + 1000000007, + 1000000087 + ], + "null_trials": 1000 + }, + "result": { + "n": 5, + "total_pairs": 25, + "distinct_sums": 14, + "sidon_score": 0.56, + "max_degeneracy": 3, + "collision_count": 10, + "collision_entropy": 3.7337, + "collision_histogram": { + "2000000016": 2, + "2000000028": 2, + "2000000040": 2, + "2000000094": 2, + "2000000030": 2, + "2000000042": 3, + "2000000096": 2, + "2000000054": 2, + "2000000108": 2, + "2000000120": 2 + }, + "null_distribution": { + "mean": 0.5868, + "std": 0.0225, + "p5": 0.56, + "p50": 0.6, + "p95": 0.6, + "trials": 1000 + }, + "p_value_two_sided": 0.502, + "effect_size": -0.0268, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0347, + "timestamp": 1783120474.0052655 + }, + { + "id": "primes_billion_s6", + "type": "prime_set", + "inputs": { + "size": 6, + "scale": "billion", + "labels": [ + 1000000007, + 1000000009, + 1000000021, + 1000000033, + 1000000087, + 1000000093 + ], + "range": [ + 1000000007, + 1000000093 + ], + "null_trials": 1000 + }, + "result": { + "n": 6, + "total_pairs": 36, + "distinct_sums": 20, + "sidon_score": 0.555556, + "max_degeneracy": 3, + "collision_count": 15, + "collision_entropy": 4.2601, + "collision_histogram": { + "2000000016": 2, + "2000000028": 2, + "2000000040": 2, + "2000000094": 2, + "2000000100": 2, + "2000000030": 2, + "2000000042": 3, + "2000000096": 2, + "2000000102": 2, + "2000000054": 2, + "2000000108": 2, + "2000000114": 2, + "2000000120": 2, + "2000000126": 2, + "2000000180": 2 + }, + "null_distribution": { + "mean": 0.5644, + "std": 0.0216, + "p5": 0.5278, + "p50": 0.5556, + "p95": 0.5833, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": -0.0088, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0431, + "timestamp": 1783120474.0484068 + }, + { + "id": "primes_billion_s7", + "type": "prime_set", + "inputs": { + "size": 7, + "scale": "billion", + "labels": [ + 1000000007, + 1000000009, + 1000000021, + 1000000033, + 1000000087, + 1000000093, + 1000000097 + ], + "range": [ + 1000000007, + 1000000097 + ], + "null_trials": 1000 + }, + "result": { + "n": 7, + "total_pairs": 49, + "distinct_sums": 27, + "sidon_score": 0.55102, + "max_degeneracy": 3, + "collision_count": 21, + "collision_entropy": 4.7013, + "collision_histogram": { + "2000000016": 2, + "2000000028": 2, + "2000000040": 2, + "2000000094": 2, + "2000000100": 2, + "2000000104": 2, + "2000000030": 2, + "2000000042": 3, + "2000000096": 2, + "2000000102": 2, + "2000000106": 2, + "2000000054": 2, + "2000000108": 2, + "2000000114": 2, + "2000000118": 2, + "2000000120": 2, + "2000000126": 2, + "2000000130": 2, + "2000000180": 2, + "2000000184": 2, + "2000000190": 2 + }, + "null_distribution": { + "mean": 0.5433, + "std": 0.0224, + "p5": 0.5102, + "p50": 0.551, + "p95": 0.5714, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": 0.0077, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0512, + "timestamp": 1783120474.0996733 + }, + { + "id": "primes_billion_s8", + "type": "prime_set", + "inputs": { + "size": 8, + "scale": "billion", + "labels": [ + 1000000007, + 1000000009, + 1000000021, + 1000000033, + 1000000087, + 1000000093, + 1000000097, + 1000000103 + ], + "range": [ + 1000000007, + 1000000103 + ], + "null_trials": 1000 + }, + "result": { + "n": 8, + "total_pairs": 64, + "distinct_sums": 34, + "sidon_score": 0.53125, + "max_degeneracy": 4, + "collision_count": 27, + "collision_entropy": 5.0195, + "collision_histogram": { + "2000000016": 2, + "2000000028": 2, + "2000000040": 2, + "2000000094": 2, + "2000000100": 2, + "2000000104": 2, + "2000000110": 2, + "2000000030": 2, + "2000000042": 3, + "2000000096": 2, + "2000000102": 2, + "2000000106": 2, + "2000000112": 2, + "2000000054": 2, + "2000000108": 2, + "2000000114": 2, + "2000000118": 2, + "2000000124": 2, + "2000000120": 2, + "2000000126": 2, + "2000000130": 2, + "2000000136": 2, + "2000000180": 2, + "2000000184": 2, + "2000000190": 4, + "2000000196": 2, + "2000000200": 2 + }, + "null_distribution": { + "mean": 0.5268, + "std": 0.0211, + "p5": 0.4844, + "p50": 0.5312, + "p95": 0.5625, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": 0.0044, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0608, + "timestamp": 1783120474.160529 + }, + { + "id": "primes_billion_s10", + "type": "prime_set", + "inputs": { + "size": 10, + "scale": "billion", + "labels": [ + 1000000007, + 1000000009, + 1000000021, + 1000000033, + 1000000087, + 1000000093, + 1000000097, + 1000000103, + 1000000123, + 1000000181 + ], + "range": [ + 1000000007, + 1000000181 + ], + "null_trials": 1000 + }, + "result": { + "n": 10, + "total_pairs": 100, + "distinct_sums": 51, + "sidon_score": 0.51, + "max_degeneracy": 6, + "collision_count": 42, + "collision_entropy": 5.5812, + "collision_histogram": { + "2000000016": 2, + "2000000028": 2, + "2000000040": 2, + "2000000094": 2, + "2000000100": 2, + "2000000104": 2, + "2000000110": 2, + "2000000130": 4, + "2000000188": 2, + "2000000030": 2, + "2000000042": 3, + "2000000096": 2, + "2000000102": 2, + "2000000106": 2, + "2000000112": 2, + "2000000132": 2, + "2000000190": 6, + "2000000054": 2, + "2000000108": 2, + "2000000114": 2, + "2000000118": 2, + "2000000124": 2, + "2000000144": 2, + "2000000202": 2, + "2000000120": 2, + "2000000126": 2, + "2000000136": 2, + "2000000156": 2, + "2000000214": 2, + "2000000180": 2, + "2000000184": 2, + "2000000210": 2, + "2000000268": 2, + "2000000196": 2, + "2000000216": 2, + "2000000274": 2, + "2000000200": 2, + "2000000220": 2, + "2000000278": 2, + "2000000226": 2, + "2000000284": 2, + "2000000304": 2 + }, + "null_distribution": { + "mean": 0.516, + "std": 0.0171, + "p5": 0.48, + "p50": 0.52, + "p95": 0.54, + "trials": 1000 + }, + "p_value_two_sided": 0.82, + "effect_size": -0.006, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0843, + "timestamp": 1783120474.2448404 + }, + { + "id": "primes_trillion_s5", + "type": "prime_set", + "inputs": { + "size": 5, + "scale": "trillion", + "labels": [ + 1000000000039, + 1000000000061, + 1000000000063, + 1000000000091, + 1000000000121 + ], + "range": [ + 1000000000039, + 1000000000121 + ], + "null_trials": 1000 + }, + "result": { + "n": 5, + "total_pairs": 25, + "distinct_sums": 14, + "sidon_score": 0.56, + "max_degeneracy": 3, + "collision_count": 10, + "collision_entropy": 3.7337, + "collision_histogram": { + "2000000000100": 2, + "2000000000102": 2, + "2000000000130": 2, + "2000000000160": 2, + "2000000000124": 2, + "2000000000152": 2, + "2000000000182": 3, + "2000000000154": 2, + "2000000000184": 2, + "2000000000212": 2 + }, + "null_distribution": { + "mean": 0.5895, + "std": 0.0205, + "p5": 0.56, + "p50": 0.6, + "p95": 0.6, + "trials": 1000 + }, + "p_value_two_sided": 0.54, + "effect_size": -0.0295, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0343, + "timestamp": 1783120474.2791667 + }, + { + "id": "primes_trillion_s6", + "type": "prime_set", + "inputs": { + "size": 6, + "scale": "trillion", + "labels": [ + 1000000000039, + 1000000000061, + 1000000000063, + 1000000000091, + 1000000000121, + 1000000000163 + ], + "range": [ + 1000000000039, + 1000000000163 + ], + "null_trials": 1000 + }, + "result": { + "n": 6, + "total_pairs": 36, + "distinct_sums": 20, + "sidon_score": 0.555556, + "max_degeneracy": 3, + "collision_count": 15, + "collision_entropy": 4.2601, + "collision_histogram": { + "2000000000100": 2, + "2000000000102": 2, + "2000000000130": 2, + "2000000000160": 2, + "2000000000202": 2, + "2000000000124": 2, + "2000000000152": 2, + "2000000000182": 3, + "2000000000224": 2, + "2000000000154": 2, + "2000000000184": 2, + "2000000000226": 2, + "2000000000212": 2, + "2000000000254": 2, + "2000000000284": 2 + }, + "null_distribution": { + "mean": 0.57, + "std": 0.019, + "p5": 0.5278, + "p50": 0.5833, + "p95": 0.5833, + "trials": 1000 + }, + "p_value_two_sided": 0.766, + "effect_size": -0.0144, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0423, + "timestamp": 1783120474.3214636 + }, + { + "id": "primes_trillion_s7", + "type": "prime_set", + "inputs": { + "size": 7, + "scale": "trillion", + "labels": [ + 1000000000039, + 1000000000061, + 1000000000063, + 1000000000091, + 1000000000121, + 1000000000163, + 1000000000169 + ], + "range": [ + 1000000000039, + 1000000000169 + ], + "null_trials": 1000 + }, + "result": { + "n": 7, + "total_pairs": 49, + "distinct_sums": 27, + "sidon_score": 0.55102, + "max_degeneracy": 3, + "collision_count": 21, + "collision_entropy": 4.7013, + "collision_histogram": { + "2000000000100": 2, + "2000000000102": 2, + "2000000000130": 2, + "2000000000160": 2, + "2000000000202": 2, + "2000000000208": 2, + "2000000000124": 2, + "2000000000152": 2, + "2000000000182": 3, + "2000000000224": 2, + "2000000000230": 2, + "2000000000154": 2, + "2000000000184": 2, + "2000000000226": 2, + "2000000000232": 2, + "2000000000212": 2, + "2000000000254": 2, + "2000000000260": 2, + "2000000000284": 2, + "2000000000290": 2, + "2000000000332": 2 + }, + "null_distribution": { + "mean": 0.5523, + "std": 0.0193, + "p5": 0.5102, + "p50": 0.551, + "p95": 0.5714, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": -0.0013, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0515, + "timestamp": 1783120474.3729565 + }, + { + "id": "primes_trillion_s8", + "type": "prime_set", + "inputs": { + "size": 8, + "scale": "trillion", + "labels": [ + 1000000000039, + 1000000000061, + 1000000000063, + 1000000000091, + 1000000000121, + 1000000000163, + 1000000000169, + 1000000000177 + ], + "range": [ + 1000000000039, + 1000000000177 + ], + "null_trials": 1000 + }, + "result": { + "n": 8, + "total_pairs": 64, + "distinct_sums": 35, + "sidon_score": 0.546875, + "max_degeneracy": 3, + "collision_count": 28, + "collision_entropy": 5.082, + "collision_histogram": { + "2000000000100": 2, + "2000000000102": 2, + "2000000000130": 2, + "2000000000160": 2, + "2000000000202": 2, + "2000000000208": 2, + "2000000000216": 2, + "2000000000124": 2, + "2000000000152": 2, + "2000000000182": 3, + "2000000000224": 2, + "2000000000230": 2, + "2000000000238": 2, + "2000000000154": 2, + "2000000000184": 2, + "2000000000226": 2, + "2000000000232": 2, + "2000000000240": 2, + "2000000000212": 2, + "2000000000254": 2, + "2000000000260": 2, + "2000000000268": 2, + "2000000000284": 2, + "2000000000290": 2, + "2000000000298": 2, + "2000000000332": 2, + "2000000000340": 2, + "2000000000346": 2 + }, + "null_distribution": { + "mean": 0.5374, + "std": 0.0181, + "p5": 0.5, + "p50": 0.5469, + "p95": 0.5625, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": 0.0095, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0614, + "timestamp": 1783120474.4343703 + }, + { + "id": "primes_trillion_s10", + "type": "prime_set", + "inputs": { + "size": 10, + "scale": "trillion", + "labels": [ + 1000000000039, + 1000000000061, + 1000000000063, + 1000000000091, + 1000000000121, + 1000000000163, + 1000000000169, + 1000000000177, + 1000000000189, + 1000000000193 + ], + "range": [ + 1000000000039, + 1000000000193 + ], + "null_trials": 1000 + }, + "result": { + "n": 10, + "total_pairs": 100, + "distinct_sums": 51, + "sidon_score": 0.51, + "max_degeneracy": 4, + "collision_count": 42, + "collision_entropy": 5.5963, + "collision_histogram": { + "2000000000100": 2, + "2000000000102": 2, + "2000000000130": 2, + "2000000000160": 2, + "2000000000202": 2, + "2000000000208": 2, + "2000000000216": 2, + "2000000000228": 2, + "2000000000232": 4, + "2000000000124": 2, + "2000000000152": 2, + "2000000000182": 3, + "2000000000224": 2, + "2000000000230": 2, + "2000000000238": 2, + "2000000000250": 2, + "2000000000254": 4, + "2000000000154": 2, + "2000000000184": 2, + "2000000000226": 2, + "2000000000240": 2, + "2000000000252": 2, + "2000000000256": 2, + "2000000000212": 2, + "2000000000260": 2, + "2000000000268": 2, + "2000000000280": 2, + "2000000000284": 4, + "2000000000290": 2, + "2000000000298": 2, + "2000000000310": 2, + "2000000000314": 2, + "2000000000332": 2, + "2000000000340": 2, + "2000000000352": 2, + "2000000000356": 2, + "2000000000346": 2, + "2000000000358": 2, + "2000000000362": 2, + "2000000000366": 2, + "2000000000370": 2, + "2000000000382": 2 + }, + "null_distribution": { + "mean": 0.5119, + "std": 0.0177, + "p5": 0.48, + "p50": 0.51, + "p95": 0.54, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": -0.0019, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0864, + "timestamp": 1783120474.5207705 + }, + { + "id": "primes_quadrillion_s5", + "type": "prime_set", + "inputs": { + "size": 5, + "scale": "quadrillion", + "labels": [ + 1000000000000037, + 1000000000000091, + 1000000000000159, + 1000000000000187, + 1000000000000223 + ], + "range": [ + 1000000000000037, + 1000000000000223 + ], + "null_trials": 1000 + }, + "result": { + "n": 5, + "total_pairs": 25, + "distinct_sums": 15, + "sidon_score": 0.6, + "max_degeneracy": 2, + "collision_count": 10, + "collision_entropy": 3.8439, + "collision_histogram": { + "2000000000000128": 2, + "2000000000000196": 2, + "2000000000000224": 2, + "2000000000000260": 2, + "2000000000000250": 2, + "2000000000000278": 2, + "2000000000000314": 2, + "2000000000000346": 2, + "2000000000000382": 2, + "2000000000000410": 2 + }, + "null_distribution": { + "mean": 0.5942, + "std": 0.0151, + "p5": 0.56, + "p50": 0.6, + "p95": 0.6, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": 0.0058, + "significant": false + }, + "status": "success", + "elapsed_s": 0.034, + "timestamp": 1783120474.5547967 + }, + { + "id": "primes_quadrillion_s6", + "type": "prime_set", + "inputs": { + "size": 6, + "scale": "quadrillion", + "labels": [ + 1000000000000037, + 1000000000000091, + 1000000000000159, + 1000000000000187, + 1000000000000223, + 1000000000000241 + ], + "range": [ + 1000000000000037, + 1000000000000241 + ], + "null_trials": 1000 + }, + "result": { + "n": 6, + "total_pairs": 36, + "distinct_sums": 20, + "sidon_score": 0.555556, + "max_degeneracy": 4, + "collision_count": 14, + "collision_entropy": 4.2255, + "collision_histogram": { + "2000000000000128": 2, + "2000000000000196": 2, + "2000000000000224": 2, + "2000000000000260": 2, + "2000000000000278": 4, + "2000000000000250": 2, + "2000000000000314": 2, + "2000000000000332": 2, + "2000000000000346": 2, + "2000000000000382": 2, + "2000000000000400": 2, + "2000000000000410": 2, + "2000000000000428": 2, + "2000000000000464": 2 + }, + "null_distribution": { + "mean": 0.5748, + "std": 0.0149, + "p5": 0.5556, + "p50": 0.5833, + "p95": 0.5833, + "trials": 1000 + }, + "p_value_two_sided": 0.524, + "effect_size": -0.0192, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0424, + "timestamp": 1783120474.5972607 + }, + { + "id": "primes_quadrillion_s7", + "type": "prime_set", + "inputs": { + "size": 7, + "scale": "quadrillion", + "labels": [ + 1000000000000037, + 1000000000000091, + 1000000000000159, + 1000000000000187, + 1000000000000223, + 1000000000000241, + 1000000000000249 + ], + "range": [ + 1000000000000037, + 1000000000000249 + ], + "null_trials": 1000 + }, + "result": { + "n": 7, + "total_pairs": 49, + "distinct_sums": 27, + "sidon_score": 0.55102, + "max_degeneracy": 4, + "collision_count": 20, + "collision_entropy": 4.6759, + "collision_histogram": { + "2000000000000128": 2, + "2000000000000196": 2, + "2000000000000224": 2, + "2000000000000260": 2, + "2000000000000278": 4, + "2000000000000286": 2, + "2000000000000250": 2, + "2000000000000314": 2, + "2000000000000332": 2, + "2000000000000340": 2, + "2000000000000346": 2, + "2000000000000382": 2, + "2000000000000400": 2, + "2000000000000408": 2, + "2000000000000410": 2, + "2000000000000428": 2, + "2000000000000436": 2, + "2000000000000464": 2, + "2000000000000472": 2, + "2000000000000490": 2 + }, + "null_distribution": { + "mean": 0.5602, + "std": 0.0149, + "p5": 0.5306, + "p50": 0.5714, + "p95": 0.5714, + "trials": 1000 + }, + "p_value_two_sided": 0.854, + "effect_size": -0.0092, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0512, + "timestamp": 1783120474.6484785 + }, + { + "id": "primes_quadrillion_s8", + "type": "prime_set", + "inputs": { + "size": 8, + "scale": "quadrillion", + "labels": [ + 1000000000000037, + 1000000000000091, + 1000000000000159, + 1000000000000187, + 1000000000000223, + 1000000000000241, + 1000000000000249, + 1000000000000259 + ], + "range": [ + 1000000000000037, + 1000000000000259 + ], + "null_trials": 1000 + }, + "result": { + "n": 8, + "total_pairs": 64, + "distinct_sums": 33, + "sidon_score": 0.515625, + "max_degeneracy": 4, + "collision_count": 27, + "collision_entropy": 4.9764, + "collision_histogram": { + "2000000000000128": 2, + "2000000000000196": 2, + "2000000000000224": 2, + "2000000000000260": 2, + "2000000000000278": 4, + "2000000000000286": 2, + "2000000000000296": 2, + "2000000000000250": 2, + "2000000000000314": 2, + "2000000000000332": 2, + "2000000000000340": 2, + "2000000000000350": 2, + "2000000000000346": 2, + "2000000000000382": 2, + "2000000000000400": 2, + "2000000000000408": 2, + "2000000000000418": 2, + "2000000000000410": 2, + "2000000000000428": 2, + "2000000000000436": 2, + "2000000000000446": 3, + "2000000000000464": 2, + "2000000000000472": 2, + "2000000000000482": 3, + "2000000000000490": 2, + "2000000000000500": 2, + "2000000000000508": 2 + }, + "null_distribution": { + "mean": 0.5469, + "std": 0.015, + "p5": 0.5156, + "p50": 0.5469, + "p95": 0.5625, + "trials": 1000 + }, + "p_value_two_sided": 0.142, + "effect_size": -0.0313, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0624, + "timestamp": 1783120474.710894 + }, + { + "id": "primes_quadrillion_s10", + "type": "prime_set", + "inputs": { + "size": 10, + "scale": "quadrillion", + "labels": [ + 1000000000000037, + 1000000000000091, + 1000000000000159, + 1000000000000187, + 1000000000000223, + 1000000000000241, + 1000000000000249, + 1000000000000259, + 1000000000000273, + 1000000000000279 + ], + "range": [ + 1000000000000037, + 1000000000000279 + ], + "null_trials": 1000 + }, + "result": { + "n": 10, + "total_pairs": 100, + "distinct_sums": 52, + "sidon_score": 0.52, + "max_degeneracy": 4, + "collision_count": 44, + "collision_entropy": 5.6488, + "collision_histogram": { + "2000000000000128": 2, + "2000000000000196": 2, + "2000000000000224": 2, + "2000000000000260": 2, + "2000000000000278": 4, + "2000000000000286": 2, + "2000000000000296": 2, + "2000000000000310": 2, + "2000000000000316": 2, + "2000000000000250": 2, + "2000000000000314": 2, + "2000000000000332": 2, + "2000000000000340": 2, + "2000000000000350": 2, + "2000000000000364": 2, + "2000000000000370": 2, + "2000000000000346": 2, + "2000000000000382": 2, + "2000000000000400": 2, + "2000000000000408": 2, + "2000000000000418": 2, + "2000000000000432": 2, + "2000000000000438": 2, + "2000000000000410": 2, + "2000000000000428": 2, + "2000000000000436": 2, + "2000000000000446": 3, + "2000000000000460": 2, + "2000000000000466": 2, + "2000000000000464": 2, + "2000000000000472": 2, + "2000000000000482": 3, + "2000000000000496": 2, + "2000000000000502": 2, + "2000000000000490": 2, + "2000000000000500": 2, + "2000000000000514": 2, + "2000000000000520": 2, + "2000000000000508": 2, + "2000000000000522": 2, + "2000000000000528": 2, + "2000000000000532": 2, + "2000000000000538": 2, + "2000000000000552": 2 + }, + "null_distribution": { + "mean": 0.5257, + "std": 0.0148, + "p5": 0.5, + "p50": 0.53, + "p95": 0.55, + "trials": 1000 + }, + "p_value_two_sided": 0.88, + "effect_size": -0.0057, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0868, + "timestamp": 1783120474.7977076 + }, + { + "id": "primes_quintillion_s5", + "type": "prime_set", + "inputs": { + "size": 5, + "scale": "quintillion", + "labels": [ + 1000000000000000003, + 1000000000000000009, + 1000000000000000031, + 1000000000000000079, + 1000000000000000177 + ], + "range": [ + 1000000000000000003, + 1000000000000000177 + ], + "null_trials": 1000 + }, + "result": { + "n": 5, + "total_pairs": 25, + "distinct_sums": 15, + "sidon_score": 0.6, + "max_degeneracy": 2, + "collision_count": 10, + "collision_entropy": 3.8439, + "collision_histogram": { + "2000000000000000012": 2, + "2000000000000000034": 2, + "2000000000000000082": 2, + "2000000000000000180": 2, + "2000000000000000040": 2, + "2000000000000000088": 2, + "2000000000000000186": 2, + "2000000000000000110": 2, + "2000000000000000208": 2, + "2000000000000000256": 2 + }, + "null_distribution": { + "mean": 0.5948, + "std": 0.0144, + "p5": 0.56, + "p50": 0.6, + "p95": 0.6, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": 0.0052, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0351, + "timestamp": 1783120474.8328228 + }, + { + "id": "primes_quintillion_s6", + "type": "prime_set", + "inputs": { + "size": 6, + "scale": "quintillion", + "labels": [ + 1000000000000000003, + 1000000000000000009, + 1000000000000000031, + 1000000000000000079, + 1000000000000000177, + 1000000000000000183 + ], + "range": [ + 1000000000000000003, + 1000000000000000183 + ], + "null_trials": 1000 + }, + "result": { + "n": 6, + "total_pairs": 36, + "distinct_sums": 20, + "sidon_score": 0.555556, + "max_degeneracy": 4, + "collision_count": 14, + "collision_entropy": 4.2255, + "collision_histogram": { + "2000000000000000012": 2, + "2000000000000000034": 2, + "2000000000000000082": 2, + "2000000000000000180": 2, + "2000000000000000186": 4, + "2000000000000000040": 2, + "2000000000000000088": 2, + "2000000000000000192": 2, + "2000000000000000110": 2, + "2000000000000000208": 2, + "2000000000000000214": 2, + "2000000000000000256": 2, + "2000000000000000262": 2, + "2000000000000000360": 2 + }, + "null_distribution": { + "mean": 0.5735, + "std": 0.0159, + "p5": 0.5556, + "p50": 0.5833, + "p95": 0.5833, + "trials": 1000 + }, + "p_value_two_sided": 0.59, + "effect_size": -0.0179, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0441, + "timestamp": 1783120474.8769648 + }, + { + "id": "primes_quintillion_s7", + "type": "prime_set", + "inputs": { + "size": 7, + "scale": "quintillion", + "labels": [ + 1000000000000000003, + 1000000000000000009, + 1000000000000000031, + 1000000000000000079, + 1000000000000000177, + 1000000000000000183, + 1000000000000000201 + ], + "range": [ + 1000000000000000003, + 1000000000000000201 + ], + "null_trials": 1000 + }, + "result": { + "n": 7, + "total_pairs": 49, + "distinct_sums": 27, + "sidon_score": 0.55102, + "max_degeneracy": 4, + "collision_count": 20, + "collision_entropy": 4.6759, + "collision_histogram": { + "2000000000000000012": 2, + "2000000000000000034": 2, + "2000000000000000082": 2, + "2000000000000000180": 2, + "2000000000000000186": 4, + "2000000000000000204": 2, + "2000000000000000040": 2, + "2000000000000000088": 2, + "2000000000000000192": 2, + "2000000000000000210": 2, + "2000000000000000110": 2, + "2000000000000000208": 2, + "2000000000000000214": 2, + "2000000000000000232": 2, + "2000000000000000256": 2, + "2000000000000000262": 2, + "2000000000000000280": 2, + "2000000000000000360": 2, + "2000000000000000378": 2, + "2000000000000000384": 2 + }, + "null_distribution": { + "mean": 0.5589, + "std": 0.015, + "p5": 0.5306, + "p50": 0.5714, + "p95": 0.5714, + "trials": 1000 + }, + "p_value_two_sided": 0.958, + "effect_size": -0.0079, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0527, + "timestamp": 1783120474.929676 + }, + { + "id": "primes_quintillion_s8", + "type": "prime_set", + "inputs": { + "size": 8, + "scale": "quintillion", + "labels": [ + 1000000000000000003, + 1000000000000000009, + 1000000000000000031, + 1000000000000000079, + 1000000000000000177, + 1000000000000000183, + 1000000000000000201, + 1000000000000000283 + ], + "range": [ + 1000000000000000003, + 1000000000000000283 + ], + "null_trials": 1000 + }, + "result": { + "n": 8, + "total_pairs": 64, + "distinct_sums": 35, + "sidon_score": 0.546875, + "max_degeneracy": 4, + "collision_count": 27, + "collision_entropy": 5.0625, + "collision_histogram": { + "2000000000000000012": 2, + "2000000000000000034": 2, + "2000000000000000082": 2, + "2000000000000000180": 2, + "2000000000000000186": 4, + "2000000000000000204": 2, + "2000000000000000286": 2, + "2000000000000000040": 2, + "2000000000000000088": 2, + "2000000000000000192": 2, + "2000000000000000210": 2, + "2000000000000000292": 2, + "2000000000000000110": 2, + "2000000000000000208": 2, + "2000000000000000214": 2, + "2000000000000000232": 2, + "2000000000000000314": 2, + "2000000000000000256": 2, + "2000000000000000262": 2, + "2000000000000000280": 2, + "2000000000000000362": 2, + "2000000000000000360": 2, + "2000000000000000378": 2, + "2000000000000000460": 2, + "2000000000000000384": 2, + "2000000000000000466": 2, + "2000000000000000484": 2 + }, + "null_distribution": { + "mean": 0.5497, + "std": 0.014, + "p5": 0.5312, + "p50": 0.5469, + "p95": 0.5625, + "trials": 1000 + }, + "p_value_two_sided": 1.0, + "effect_size": -0.0028, + "significant": false + }, + "status": "success", + "elapsed_s": 0.0646, + "timestamp": 1783120474.9943037 + }, + { + "id": "primes_quintillion_s10", + "type": "prime_set", + "inputs": { + "size": 10, + "scale": "quintillion", + "labels": [ + 1000000000000000003, + 1000000000000000009, + 1000000000000000031, + 1000000000000000079, + 1000000000000000177, + 1000000000000000183, + 1000000000000000201, + 1000000000000000283, + 1000000000000000381, + 1000000000000000387 + ], + "range": [ + 1000000000000000003, + 1000000000000000387 + ], + "null_trials": 1000 + }, + "result": { + "n": 10, + "total_pairs": 100, + "distinct_sums": 49, + "sidon_score": 0.49, + "max_degeneracy": 4, + "collision_count": 39, + "collision_entropy": 5.5039, + "collision_histogram": { + "2000000000000000012": 2, + "2000000000000000034": 2, + "2000000000000000082": 2, + "2000000000000000180": 2, + "2000000000000000186": 4, + "2000000000000000204": 2, + "2000000000000000286": 2, + "2000000000000000384": 4, + "2000000000000000390": 4, + "2000000000000000040": 2, + "2000000000000000088": 2, + "2000000000000000192": 2, + "2000000000000000210": 2, + "2000000000000000292": 2, + "2000000000000000396": 2, + "2000000000000000110": 2, + "2000000000000000208": 2, + "2000000000000000214": 2, + "2000000000000000232": 2, + "2000000000000000314": 2, + "2000000000000000412": 2, + "2000000000000000418": 2, + "2000000000000000256": 2, + "2000000000000000262": 2, + "2000000000000000280": 2, + "2000000000000000362": 2, + "2000000000000000460": 4, + "2000000000000000466": 4, + "2000000000000000360": 2, + "2000000000000000378": 2, + "2000000000000000558": 2, + "2000000000000000564": 4, + "2000000000000000570": 2, + "2000000000000000484": 2, + "2000000000000000582": 2, + "2000000000000000588": 2, + "2000000000000000664": 2, + "2000000000000000670": 2, + "2000000000000000768": 2 + }, + "null_distribution": { + "mean": 0.5353, + "std": 0.012, + "p5": 0.51, + "p50": 0.54, + "p95": 0.55, + "trials": 1000 + }, + "p_value_two_sided": 0.008, + "effect_size": -0.0453, + "significant": true + }, + "status": "success", + "elapsed_s": 0.0886, + "timestamp": 1783120475.0829244 + }, + { + "id": "summary", + "type": "summary", + "inputs": { + "schema": "prime_sidon_explore_v2", + "claim_boundary": "prime-sidon-vs-random-null:permutation-test", + "config": { + "sizes": [ + 5, + 6, + 7, + 8, + 10 + ], + "scales": [ + "small", + "kilo", + "million", + "billion", + "trillion", + "quadrillion", + "quintillion" + ], + "null_trials": 1000 + }, + "analysis": [ + { + "size": 5, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 2, + "positive_effects": 5, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.52, + "kilo": 0.56, + "million": 0.6, + "billion": 0.56, + "trillion": 0.56, + "quadrillion": 0.6, + "quintillion": 0.6 + } + }, + { + "size": 6, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 5, + "positive_effects": 2, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.472222, + "kilo": 0.5, + "million": 0.583333, + "billion": 0.555556, + "trillion": 0.555556, + "quadrillion": 0.555556, + "quintillion": 0.555556 + } + }, + { + "size": 7, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 5, + "positive_effects": 2, + "score_trend_increasing": true, + "scores_by_scale": { + "small": 0.428571, + "kilo": 0.489796, + "million": 0.530612, + "billion": 0.55102, + "trillion": 0.55102, + "quadrillion": 0.55102, + "quintillion": 0.55102 + } + }, + { + "size": 8, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 4, + "positive_effects": 3, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.390625, + "kilo": 0.453125, + "million": 0.515625, + "billion": 0.53125, + "trillion": 0.546875, + "quadrillion": 0.515625, + "quintillion": 0.546875 + } + }, + { + "size": 10, + "n_significant": 1, + "n_total": 7, + "all_significant": false, + "negative_effects": 7, + "positive_effects": 0, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.33, + "kilo": 0.39, + "million": 0.48, + "billion": 0.51, + "trillion": 0.51, + "quadrillion": 0.52, + "quintillion": 0.49 + } + } + ], + "total_test_cases": 35, + "total_significant": 1 + }, + "result": { + "schema": "prime_sidon_explore_v2", + "claim_boundary": "prime-sidon-vs-random-null:permutation-test", + "config": { + "sizes": [ + 5, + 6, + 7, + 8, + 10 + ], + "scales": [ + "small", + "kilo", + "million", + "billion", + "trillion", + "quadrillion", + "quintillion" + ], + "null_trials": 1000 + }, + "analysis": [ + { + "size": 5, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 2, + "positive_effects": 5, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.52, + "kilo": 0.56, + "million": 0.6, + "billion": 0.56, + "trillion": 0.56, + "quadrillion": 0.6, + "quintillion": 0.6 + } + }, + { + "size": 6, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 5, + "positive_effects": 2, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.472222, + "kilo": 0.5, + "million": 0.583333, + "billion": 0.555556, + "trillion": 0.555556, + "quadrillion": 0.555556, + "quintillion": 0.555556 + } + }, + { + "size": 7, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 5, + "positive_effects": 2, + "score_trend_increasing": true, + "scores_by_scale": { + "small": 0.428571, + "kilo": 0.489796, + "million": 0.530612, + "billion": 0.55102, + "trillion": 0.55102, + "quadrillion": 0.55102, + "quintillion": 0.55102 + } + }, + { + "size": 8, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 4, + "positive_effects": 3, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.390625, + "kilo": 0.453125, + "million": 0.515625, + "billion": 0.53125, + "trillion": 0.546875, + "quadrillion": 0.515625, + "quintillion": 0.546875 + } + }, + { + "size": 10, + "n_significant": 1, + "n_total": 7, + "all_significant": false, + "negative_effects": 7, + "positive_effects": 0, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.33, + "kilo": 0.39, + "million": 0.48, + "billion": 0.51, + "trillion": 0.51, + "quadrillion": 0.52, + "quintillion": 0.49 + } + } + ], + "total_test_cases": 35, + "total_significant": 1 + }, + "status": "success", + "elapsed_s": 0.0, + "timestamp": 1783120475.0830643 + } + ], + "edges": [ + { + "from": "primes_small_s5", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_small_s6", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_small_s7", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_small_s8", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_small_s10", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_kilo_s5", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_kilo_s6", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_kilo_s7", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_kilo_s8", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_kilo_s10", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_million_s5", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_million_s6", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_million_s7", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_million_s8", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_million_s10", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_billion_s5", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_billion_s6", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_billion_s7", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_billion_s8", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_billion_s10", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_trillion_s5", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_trillion_s6", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_trillion_s7", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_trillion_s8", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_trillion_s10", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_quadrillion_s5", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_quadrillion_s6", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_quadrillion_s7", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_quadrillion_s8", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_quadrillion_s10", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_quintillion_s5", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_quintillion_s6", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_quintillion_s7", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_quintillion_s8", + "to": "summary", + "type": "feeds_summary" + }, + { + "from": "primes_quintillion_s10", + "to": "summary", + "type": "feeds_summary" + } + ] +} \ No newline at end of file diff --git a/.openresearch/artifacts/prime_sidon_dag.md b/.openresearch/artifacts/prime_sidon_dag.md new file mode 100644 index 00000000..a9d4f000 --- /dev/null +++ b/.openresearch/artifacts/prime_sidon_dag.md @@ -0,0 +1,99 @@ +# Prime Sidon Exploration DAG + +**Nodes:** 51 +**Edges:** 35 + +## Nodes + +| ID | Type | Status | Elapsed | Inputs | +|----|------|--------|---------|--------| +| bounds_s5 | analytical_bounds | success | 0.0s | {"size": 5, "lower_bound": 0.36, "upper_bound": 0.6} | +| bounds_s6 | analytical_bounds | success | 0.0s | {"size": 6, "lower_bound": 0.3056, "upper_bound": 0.5833} | +| bounds_s7 | analytical_bounds | success | 0.0s | {"size": 7, "lower_bound": 0.2653, "upper_bound": 0.5714} | +| bounds_s8 | analytical_bounds | success | 0.0s | {"size": 8, "lower_bound": 0.2344, "upper_bound": 0.5625} | +| bounds_s10 | analytical_bounds | success | 0.0s | {"size": 10, "lower_bound": 0.19, "upper_bound": 0.55} | +| sidon_pow2_s5 | reference | success | 0.0s | {"type": "sidon_pow2", "size": 5, "labels": [1, 2, 4, 8, 16] | +| nonsidon_seq_s5 | reference | success | 0.0s | {"type": "nonsidon_consecutive", "size": 5, "labels": [1, 2, | +| sidon_pow2_s6 | reference | success | 0.0s | {"type": "sidon_pow2", "size": 6, "labels": [1, 2, 4, 8, 16, | +| nonsidon_seq_s6 | reference | success | 0.0s | {"type": "nonsidon_consecutive", "size": 6, "labels": [1, 2, | +| sidon_pow2_s7 | reference | success | 0.0s | {"type": "sidon_pow2", "size": 7, "labels": [1, 2, 4, 8, 16, | +| nonsidon_seq_s7 | reference | success | 0.0s | {"type": "nonsidon_consecutive", "size": 7, "labels": [1, 2, | +| sidon_pow2_s8 | reference | success | 0.0s | {"type": "sidon_pow2", "size": 8, "labels": [1, 2, 4, 8, 16, | +| nonsidon_seq_s8 | reference | success | 0.0s | {"type": "nonsidon_consecutive", "size": 8, "labels": [1, 2, | +| sidon_pow2_s10 | reference | success | 0.0s | {"type": "sidon_pow2", "size": 10, "labels": [1, 2, 4, 8, 16 | +| nonsidon_seq_s10 | reference | success | 0.0s | {"type": "nonsidon_consecutive", "size": 10, "labels": [1, 2 | +| primes_small_s5 | prime_set | success | 0.0297s | {"size": 5, "scale": "small", "labels": [2, 3, 5, 7, 11], "r | +| primes_small_s6 | prime_set | success | 0.0344s | {"size": 6, "scale": "small", "labels": [2, 3, 5, 7, 11, 13] | +| primes_small_s7 | prime_set | success | 0.0411s | {"size": 7, "scale": "small", "labels": [2, 3, 5, 7, 11, 13, | +| primes_small_s8 | prime_set | success | 0.0475s | {"size": 8, "scale": "small", "labels": [2, 3, 5, 7, 11, 13, | +| primes_small_s10 | prime_set | success | 0.0636s | {"size": 10, "scale": "small", "labels": [2, 3, 5, 7, 11, 13 | +| primes_kilo_s5 | prime_set | success | 0.0322s | {"size": 5, "scale": "kilo", "labels": [1009, 1013, 1019, 10 | +| primes_kilo_s6 | prime_set | success | 0.0415s | {"size": 6, "scale": "kilo", "labels": [1009, 1013, 1019, 10 | +| primes_kilo_s7 | prime_set | success | 0.0479s | {"size": 7, "scale": "kilo", "labels": [1009, 1013, 1019, 10 | +| primes_kilo_s8 | prime_set | success | 0.0576s | {"size": 8, "scale": "kilo", "labels": [1009, 1013, 1019, 10 | +| primes_kilo_s10 | prime_set | success | 0.0795s | {"size": 10, "scale": "kilo", "labels": [1009, 1013, 1019, 1 | +| primes_million_s5 | prime_set | success | 0.0347s | {"size": 5, "scale": "million", "labels": [1000003, 1000033, | +| primes_million_s6 | prime_set | success | 0.0411s | {"size": 6, "scale": "million", "labels": [1000003, 1000033, | +| primes_million_s7 | prime_set | success | 0.0512s | {"size": 7, "scale": "million", "labels": [1000003, 1000033, | +| primes_million_s8 | prime_set | success | 0.0603s | {"size": 8, "scale": "million", "labels": [1000003, 1000033, | +| primes_million_s10 | prime_set | success | 0.0822s | {"size": 10, "scale": "million", "labels": [1000003, 1000033 | +| primes_billion_s5 | prime_set | success | 0.0347s | {"size": 5, "scale": "billion", "labels": [1000000007, 10000 | +| primes_billion_s6 | prime_set | success | 0.0431s | {"size": 6, "scale": "billion", "labels": [1000000007, 10000 | +| primes_billion_s7 | prime_set | success | 0.0512s | {"size": 7, "scale": "billion", "labels": [1000000007, 10000 | +| primes_billion_s8 | prime_set | success | 0.0608s | {"size": 8, "scale": "billion", "labels": [1000000007, 10000 | +| primes_billion_s10 | prime_set | success | 0.0843s | {"size": 10, "scale": "billion", "labels": [1000000007, 1000 | +| primes_trillion_s5 | prime_set | success | 0.0343s | {"size": 5, "scale": "trillion", "labels": [1000000000039, 1 | +| primes_trillion_s6 | prime_set | success | 0.0423s | {"size": 6, "scale": "trillion", "labels": [1000000000039, 1 | +| primes_trillion_s7 | prime_set | success | 0.0515s | {"size": 7, "scale": "trillion", "labels": [1000000000039, 1 | +| primes_trillion_s8 | prime_set | success | 0.0614s | {"size": 8, "scale": "trillion", "labels": [1000000000039, 1 | +| primes_trillion_s10 | prime_set | success | 0.0864s | {"size": 10, "scale": "trillion", "labels": [1000000000039, | +| primes_quadrillion_s5 | prime_set | success | 0.034s | {"size": 5, "scale": "quadrillion", "labels": [1000000000000 | +| primes_quadrillion_s6 | prime_set | success | 0.0424s | {"size": 6, "scale": "quadrillion", "labels": [1000000000000 | +| primes_quadrillion_s7 | prime_set | success | 0.0512s | {"size": 7, "scale": "quadrillion", "labels": [1000000000000 | +| primes_quadrillion_s8 | prime_set | success | 0.0624s | {"size": 8, "scale": "quadrillion", "labels": [1000000000000 | +| primes_quadrillion_s10 | prime_set | success | 0.0868s | {"size": 10, "scale": "quadrillion", "labels": [100000000000 | +| primes_quintillion_s5 | prime_set | success | 0.0351s | {"size": 5, "scale": "quintillion", "labels": [1000000000000 | +| primes_quintillion_s6 | prime_set | success | 0.0441s | {"size": 6, "scale": "quintillion", "labels": [1000000000000 | +| primes_quintillion_s7 | prime_set | success | 0.0527s | {"size": 7, "scale": "quintillion", "labels": [1000000000000 | +| primes_quintillion_s8 | prime_set | success | 0.0646s | {"size": 8, "scale": "quintillion", "labels": [1000000000000 | +| primes_quintillion_s10 | prime_set | success | 0.0886s | {"size": 10, "scale": "quintillion", "labels": [100000000000 | +| summary | summary | success | 0.0s | {"schema": "prime_sidon_explore_v2", "claim_boundary": "prim | + +## Edges +| From | To | Type | +|------|----|------| +| primes_small_s5 | summary | feeds_summary | +| primes_small_s6 | summary | feeds_summary | +| primes_small_s7 | summary | feeds_summary | +| primes_small_s8 | summary | feeds_summary | +| primes_small_s10 | summary | feeds_summary | +| primes_kilo_s5 | summary | feeds_summary | +| primes_kilo_s6 | summary | feeds_summary | +| primes_kilo_s7 | summary | feeds_summary | +| primes_kilo_s8 | summary | feeds_summary | +| primes_kilo_s10 | summary | feeds_summary | +| primes_million_s5 | summary | feeds_summary | +| primes_million_s6 | summary | feeds_summary | +| primes_million_s7 | summary | feeds_summary | +| primes_million_s8 | summary | feeds_summary | +| primes_million_s10 | summary | feeds_summary | +| primes_billion_s5 | summary | feeds_summary | +| primes_billion_s6 | summary | feeds_summary | +| primes_billion_s7 | summary | feeds_summary | +| primes_billion_s8 | summary | feeds_summary | +| primes_billion_s10 | summary | feeds_summary | +| primes_trillion_s5 | summary | feeds_summary | +| primes_trillion_s6 | summary | feeds_summary | +| primes_trillion_s7 | summary | feeds_summary | +| primes_trillion_s8 | summary | feeds_summary | +| primes_trillion_s10 | summary | feeds_summary | +| primes_quadrillion_s5 | summary | feeds_summary | +| primes_quadrillion_s6 | summary | feeds_summary | +| primes_quadrillion_s7 | summary | feeds_summary | +| primes_quadrillion_s8 | summary | feeds_summary | +| primes_quadrillion_s10 | summary | feeds_summary | +| primes_quintillion_s5 | summary | feeds_summary | +| primes_quintillion_s6 | summary | feeds_summary | +| primes_quintillion_s7 | summary | feeds_summary | +| primes_quintillion_s8 | summary | feeds_summary | +| primes_quintillion_s10 | summary | feeds_summary | \ No newline at end of file diff --git a/.openresearch/artifacts/prime_sidon_explore.json b/.openresearch/artifacts/prime_sidon_explore.json new file mode 100644 index 00000000..47bc4787 --- /dev/null +++ b/.openresearch/artifacts/prime_sidon_explore.json @@ -0,0 +1,117 @@ +{ + "schema": "prime_sidon_explore_v2", + "claim_boundary": "prime-sidon-vs-random-null:permutation-test", + "config": { + "sizes": [ + 5, + 6, + 7, + 8, + 10 + ], + "scales": [ + "small", + "kilo", + "million", + "billion", + "trillion", + "quadrillion", + "quintillion" + ], + "null_trials": 1000 + }, + "analysis": [ + { + "size": 5, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 2, + "positive_effects": 5, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.52, + "kilo": 0.56, + "million": 0.6, + "billion": 0.56, + "trillion": 0.56, + "quadrillion": 0.6, + "quintillion": 0.6 + } + }, + { + "size": 6, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 5, + "positive_effects": 2, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.472222, + "kilo": 0.5, + "million": 0.583333, + "billion": 0.555556, + "trillion": 0.555556, + "quadrillion": 0.555556, + "quintillion": 0.555556 + } + }, + { + "size": 7, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 5, + "positive_effects": 2, + "score_trend_increasing": true, + "scores_by_scale": { + "small": 0.428571, + "kilo": 0.489796, + "million": 0.530612, + "billion": 0.55102, + "trillion": 0.55102, + "quadrillion": 0.55102, + "quintillion": 0.55102 + } + }, + { + "size": 8, + "n_significant": 0, + "n_total": 7, + "all_significant": false, + "negative_effects": 4, + "positive_effects": 3, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.390625, + "kilo": 0.453125, + "million": 0.515625, + "billion": 0.53125, + "trillion": 0.546875, + "quadrillion": 0.515625, + "quintillion": 0.546875 + } + }, + { + "size": 10, + "n_significant": 1, + "n_total": 7, + "all_significant": false, + "negative_effects": 7, + "positive_effects": 0, + "score_trend_increasing": false, + "scores_by_scale": { + "small": 0.33, + "kilo": 0.39, + "million": 0.48, + "billion": 0.51, + "trillion": 0.51, + "quadrillion": 0.52, + "quintillion": 0.49 + } + } + ], + "total_test_cases": 35, + "total_significant": 1 +} \ No newline at end of file diff --git a/docs/research/PRIME_SIDON_NEGATIVE_RESULT.md b/docs/research/PRIME_SIDON_NEGATIVE_RESULT.md new file mode 100644 index 00000000..7a6db627 --- /dev/null +++ b/docs/research/PRIME_SIDON_NEGATIVE_RESULT.md @@ -0,0 +1,66 @@ +# Prime Sidon Spectral Signature — Negative Result + +**Status:** VERIFIED NEGATIVE — null hypothesis not rejected +**Date:** 2026-07-03 +**Script:** `scripts/prime_sidon_explore.py` +**Artifacts:** `.openresearch/artifacts/prime_sidon_dag.json` (51 nodes, 35 edges) + +--- + +## Hypothesis + +Prime-based label sets exhibit a spectral signature in Sidon sum-degeneracy that distinguishes them from random numbers of the same magnitude. + +## Method + +For each label set A = {a₁, …, aₙ}, compute: +1. **Sum matrix** M[i][j] = a_i + a_j (pure integer arithmetic) +2. **Sidon score** = distinct_sums / n² (1.0 = perfect Sidon, all pairwise sums distinct) + +Compare prime clusters against a null distribution of 1000 random n-subsets of integers in the same [min, max] range. Two-sided permutation test. + +**Scales tested:** small (2..19), kilo (~10³), million (~10⁶), billion (~10⁹), trillion (~10¹²), quadrillion (~10¹⁵), quintillion (~10¹⁸) +**Sizes tested:** n ∈ {5, 6, 7, 8, 10} +**Total test cases:** 35 + +## Result + +| Measure | Value | +|---------|-------| +| Significant at p < 0.05 | **1/35** | +| Significant after Bonferroni (α = 0.0014) | **0/35** | +| Expected false positives at α = 0.05 | 1.75 | +| Observed false positives | 1 | + +The null hypothesis is **not rejected**. Prime Sidon scores are indistinguishable from random n-subsets at the same scale. + +## Why Earlier Analysis Was Misleading + +The initial `prime_slos_explore.py` (using SLOS + eigenvalue products) found that primes sit "between" Sidon (powers of 2) and non-Sidon (consecutive integers). Adversarial review identified two fatal flaws: + +1. **Mathematical tautology**: For *any* set of n distinct integers, the Sidon score is provably bounded by `(2n-1)/n² ≤ score ≤ (n+1)/(2n)`. The "BETWEEN" result adds zero empirical information — it's equivalent to "primes are positive integers." + +2. **Float precision artifact**: The eigenvalue product and tensor entropy metrics used float64 arithmetic. At billion+ scales, consecutive primes have tiny relative gaps (~10⁻⁷), making the sum matrix numerically rank-1. The apparent "convergence to a fixed point" was float64 saturation, not a physical phenomenon. + +## What Was Learned + +1. **Adversarial review caught the tautology** — the corrected script explicitly reports analytical bounds before any empirical test +2. **Permutation test is essential** — comparing against a null distribution of random numbers at the same range, not against extreme theoretical bounds +3. **Integer-only arithmetic avoids float artifacts** — the corrected script uses only integer sum-counting, no float, no eigenvalue decompositions, no SLOS +4. **The prime structure does not manifest in pairwise sum degeneracy** — at least not for consecutive prime clusters up to quintillion scale + +## DAG Structure + +- 10 reference nodes (analytical bounds + baseline verification) +- 35 prime set nodes (each with permutation test against 1000 random subsets) +- 5 analysis nodes (cross-scale per size) +- 1 summary node +- 35 edges connecting each prime set to the summary + +## claim_boundary + +``` +prime-sidon-sum-degeneracy:negative-result:permutation-test +``` + +This receipt is bounded to the claim that consecutive prime clusters at 7 scales and 5 sizes (35 test cases) do not deviate from random n-subsets at p < 0.05 in Sidon sum-degeneracy score. It does not claim that primes have *no* additive structure — only that this specific metric cannot distinguish them from random numbers at the same scale. diff --git a/scripts/prime_sidon_explore.py b/scripts/prime_sidon_explore.py new file mode 100644 index 00000000..0620b412 --- /dev/null +++ b/scripts/prime_sidon_explore.py @@ -0,0 +1,470 @@ +#!/usr/bin/env python3 +"""prime_sidon_explore.py — Integer-only Sidon sum-degeneracy exploration. + +Tests whether prime-based label sets satisfy the Sidon property (all pairwise +sums distinct) across scales from small primes (2,3,5,7,11) up to quintillion +(10^18). + +All arithmetic is pure integer. No float, no numpy eigenvalue decompositions, +no SLOS, no tensor networks. The metric is the actual Sidon property: + A set A is Sidon iff for all i,j,k,l, a_i + a_j = a_k + a_l ⇒ {i,j} = {k,l} + +For each label set we compute: + - Total pairs: n^2 (including order, so (i,j) counts separately from (j,i)) + - Distinct sums: number of unique values in the sum matrix + - Sidon score: distinct_sums / n^2 (1.0 = perfect Sidon) + - Max degeneracy: highest multiplicity of any single sum + - Collision entropy: Shannon entropy of the degeneracy distribution + - Collision count: number of sum values that appear ≥ 2 times + +Each computation step is a DAG node, checkpointed to disk for resume. +The DAG structure allows adversarial review of each step. +""" + +import sys +import math +import json +import time +import hashlib +import itertools +from pathlib import Path +from collections import Counter + +REPO_ROOT = Path(__file__).resolve().parent.parent +ARTIFACTS_DIR = REPO_ROOT / ".openresearch" / "artifacts" +DAG_PATH = ARTIFACTS_DIR / "prime_sidon_dag.json" +OUTPUT_PATH = ARTIFACTS_DIR / "prime_sidon_explore.json" + +# ── Recoverable DAG ────────────────────────────────────────────────────────── + +class ComputationDAG: + def __init__(self): + self.nodes = [] + self.edges = [] + ARTIFACTS_DIR.mkdir(parents=True, exist_ok=True) + + def add_node(self, node_id, node_type, inputs, result, status, elapsed): + node = { + "id": node_id, "type": node_type, + "inputs": inputs, "result": result, + "status": status, "elapsed_s": round(elapsed, 4), + "timestamp": time.time(), + } + self.nodes.append(node) + return node + + def add_edge(self, from_id, to_id, edge_type="depends_on"): + self.edges.append({"from": from_id, "to": to_id, "type": edge_type}) + + def has_node(self, node_id): + return any(n["id"] == node_id for n in self.nodes) + + def get_node(self, node_id): + for n in self.nodes: + if n["id"] == node_id: + return n["result"] + return None + + def save(self): + dag_state = {"nodes": self.nodes, "edges": self.edges} + DAG_PATH.write_text(json.dumps(dag_state, default=str, indent=2)) + + def save_report(self): + report_path = ARTIFACTS_DIR / "prime_sidon_dag.md" + lines = [ + "# Prime Sidon Exploration DAG\n", + f"**Nodes:** {len(self.nodes)}", + f"**Edges:** {len(self.edges)}\n", + "## Nodes\n", + "| ID | Type | Status | Elapsed | Inputs |", + "|----|------|--------|---------|--------|", + ] + for n in self.nodes: + inp = json.dumps(n["inputs"], default=str)[:60] + lines.append(f"| {n['id']} | {n['type']} | {n['status']} | {n['elapsed_s']}s | {inp} |") + lines.append("\n## Edges\n| From | To | Type |\n|------|----|------|") + for e in self.edges: + lines.append(f"| {e['from']} | {e['to']} | {e['type']} |") + report_path.write_text("\n".join(lines)) + return report_path + +# ── Prime generation (integer only) ────────────────────────────────────────── + +def primes_upto(limit): + """Segmented sieve. Pure integer arithmetic.""" + if limit < 2: + return [] + sieve = bytearray(b'\x01') * (limit + 1) + sieve[0:2] = b'\x00\x00' + for i in range(2, int(limit ** 0.5) + 1): + if sieve[i]: + step = i + start = i * i + sieve[start:limit+1:step] = b'\x00' * ((limit - start) // step + 1) + return [i for i, is_prime in enumerate(sieve) if is_prime] + +def prime_cluster_via_sieve(count, offset_start): + """Get count consecutive primes starting at offset_start-th prime via sieve.""" + limit = max(offset_start * 2 + 100, 10_000_000) + all_primes = primes_upto(limit) + if offset_start + count <= len(all_primes): + return all_primes[offset_start:offset_start + count] + return None + +def prime_cluster_via_sympy(start_val, count): + """Get count consecutive primes starting from start_val via sympy.nextprime.""" + import sympy + p = sympy.nextprime(start_val) + cluster = [] + for _ in range(count): + cluster.append(p) + p = sympy.nextprime(p) + return cluster + +# ── Reference label sets ───────────────────────────────────────────────────── + +def sidon_pow2_set(size): + """Powers of 2: perfect Sidon (all pairwise sums distinct).""" + return [1 << i for i in range(size)] + +def nonsidon_consecutive_set(size, start=1): + """Consecutive integers: maximally non-Sidon for a given size.""" + return list(range(start, start + size)) + +# ── Integer-only Sidon sum-degeneracy metrics ─────────────────────────────── + +def sidon_metrics(labels): + """Compute Sidon sum-degeneracy metrics using only integer arithmetic. + + All sums a_i + a_j are computed as exact integers. No floating point. + The sum matrix M[i][j] = labels[i] + labels[j] has n^2 entries. + + Returns: + n: number of labels + total_pairs: n^2 + distinct_sums: number of unique sum values + sidon_score: distinct_sums / n^2 (1.0 = perfect Sidon) + max_degeneracy: max multiplicity of any single sum + collision_count: number of sums with multiplicity >= 2 + collision_entropy: Shannon entropy of degeneracy distribution + sum_histogram: {sum_value: count} for sums with count >= 2 + """ + n = len(labels) + total_pairs = n * n + + # Count occurrences of each sum (pure integer arithmetic) + sum_counts = Counter() + for i in range(n): + for j in range(n): + sum_counts[labels[i] + labels[j]] += 1 + + distinct_sums = len(sum_counts) + sidon_score = distinct_sums / total_pairs + + # Degeneracy analysis + multiplicities = list(sum_counts.values()) + max_degeneracy = max(multiplicities) if multiplicities else 0 + collision_count = sum(1 for c in multiplicities if c >= 2) + + # Shannon entropy of degeneracy distribution + probs = [c / total_pairs for c in multiplicities] + collision_entropy = -sum(p * math.log2(p) for p in probs if p > 0) + + # Report only collisions (sums with count >= 2) + collision_histogram = {str(k): v for k, v in sum_counts.items() if v >= 2} + + return { + "n": n, + "total_pairs": total_pairs, + "distinct_sums": distinct_sums, + "sidon_score": round(sidon_score, 6), + "max_degeneracy": max_degeneracy, + "collision_count": collision_count, + "collision_entropy": round(collision_entropy, 4), + "collision_histogram": collision_histogram, + } + +# ── Permutation test (null: random distinct integers at same scale) ───────── + +def random_sidon_score(size, range_min, range_max, trials=1000, rng=None): + """Generate `trials` random n-subsets of distinct integers in [min, max] + and return the distribution of Sidon scores under the null hypothesis.""" + if rng is None: + rng = __import__("random").Random(42) + scores = [] + for _ in range(trials): + sample = sorted(rng.sample(range(range_min, range_max + 1), size)) + scores.append(sidon_metrics(sample)["sidon_score"]) + scores.sort() + return { + "mean": round(sum(scores) / len(scores), 4), + "std": round((sum((s - sum(scores)/len(scores))**2 for s in scores) / len(scores))**0.5, 4), + "p5": round(scores[int(len(scores) * 0.05)], 4), + "p50": round(scores[int(len(scores) * 0.50)], 4), + "p95": round(scores[int(len(scores) * 0.95)], 4), + "trials": trials, + } + +# ── Main exploration ──────────────────────────────────────────────────────── + +def explore(): + print("=" * 60) + print(" Prime Sidon Sum-Degeneracy Exploration") + print(" Integer-only arithmetic. Permutation test vs random null.") + print("=" * 60) + + dag = ComputationDAG() + + # Scale definitions + scales = { + "small": {"offset": 0, "label": "primes 2..19"}, + "kilo": {"offset": 168, "label": "primes near 1000"}, + "million": {"offset": 78498, "label": "primes near 10^6"}, + } + large_scales = { + "billion": 10**9, + "trillion": 10**12, + "quadrillion": 10**15, + "quintillion": 10**18, + } + + sizes = [5, 6, 7, 8, 10] + results = [] + N_TRIALS = 1000 + + # ── Step 1: Analytical bounds ───────────────────────────────────────── + print("\n--- Step 1: Analytical Sidon bounds ---") + print(" For any n distinct integers:") + print(" Lower bound (consecutive): (2n-1)/n²") + print(" Upper bound (perfect Sidon): (n+1)/(2n)") + print(" The 'BETWEEN' claim is a tautology — testing if primes") + print(" deviate from random expectation within these bounds.") + print() + + bound_nodes = {} + for size in sizes: + lower = round((2 * size - 1) / (size * size), 4) + upper = round((size + 1) / (2 * size), 4) + node_id = f"bounds_s{size}" + dag.add_node(node_id, "analytical_bounds", + {"size": size, "lower_bound": lower, "upper_bound": upper}, + {"lower": lower, "upper": upper}, "success", 0.0) + bound_nodes[size] = {"lower": lower, "upper": upper} + print(f" size={size}: lower={lower:.4f} upper={upper:.4f}") + + # ── Step 2: Reference sets (baseline verification) ──────────────────── + print("\n--- Step 2: Reference baseline verification ---") + for size in sizes: + labels = sidon_pow2_set(size) + metrics = sidon_metrics(labels) + node_id = f"sidon_pow2_s{size}" + dag.add_node(node_id, "reference", + {"type": "sidon_pow2", "size": size, "labels": labels}, + metrics, "success", 0.0) + bound = bound_nodes[size] + at_upper = abs(metrics["sidon_score"] - bound["upper"]) < 1e-6 + print(f" {node_id:25s} score={metrics['sidon_score']:.4f} (upper={bound['upper']:.4f}, at_bound={at_upper})") + + labels = nonsidon_consecutive_set(size) + metrics = sidon_metrics(labels) + node_id = f"nonsidon_seq_s{size}" + dag.add_node(node_id, "reference", + {"type": "nonsidon_consecutive", "size": size, "labels": labels}, + metrics, "success", 0.0) + at_lower = abs(metrics["sidon_score"] - bound["lower"]) < 1e-6 + print(f" {node_id:25s} score={metrics['sidon_score']:.4f} (lower={bound['lower']:.4f}, at_bound={at_lower})") + + # ── Step 3: Prime sets with permutation test ────────────────────────── + print("\n--- Step 3: Prime sets vs random null ---") + import random as _random + rng = _random.Random(42) + + for scale_name, scale_info in scales.items(): + offset = scale_info["offset"] + for size in sizes: + cluster = prime_cluster_via_sieve(size, offset) + if cluster is None: + cluster = prime_cluster_via_sympy(2, offset + size) + cluster = cluster[offset:offset + size] + + node_id = f"primes_{scale_name}_s{size}" + t0 = time.time() + metrics = sidon_metrics(cluster) + + # Permutation test: random n-subsets in [min(cluster), max(cluster)] + range_min = min(cluster) + range_max = max(cluster) + null_dist = random_sidon_score(size, range_min, range_max, N_TRIALS, rng) + + # p-value: proper permutation test + null_scores = [] + for _ in range(N_TRIALS): + sample = sorted(rng.sample(range(range_min, range_max + 1), size)) + null_scores.append(sidon_metrics(sample)["sidon_score"]) + null_scores.sort() + p_less = sum(1 for s in null_scores if s <= metrics["sidon_score"]) / N_TRIALS + p_greater = sum(1 for s in null_scores if s >= metrics["sidon_score"]) / N_TRIALS + p_two_sided = min(1.0, 2 * min(p_less, p_greater)) + + effect = round(metrics["sidon_score"] - null_dist["mean"], 4) + significant = p_two_sided < 0.05 + + elapsed = time.time() - t0 + + dag.add_node(node_id, "prime_set", + {"size": size, "scale": scale_name, "labels": cluster, + "range": [range_min, range_max], "null_trials": N_TRIALS}, + {**metrics, "null_distribution": null_dist, + "p_value_two_sided": round(p_two_sided, 4), + "effect_size": effect, "significant": significant}, + "success", elapsed) + + results.append({ + "desc": node_id, "scale": scale_name, "n_labels": size, + "labels": cluster, "metrics": metrics, + "null_distribution": null_dist, + "p_value": round(p_two_sided, 4), + "effect_size": effect, + "significant": significant, + }) + + sig_str = "***" if significant else "" + dir_str = "LESS Sidon-like" if effect < 0 else "MORE Sidon-like" + print(f" {node_id:30s} score={metrics['sidon_score']:.4f} " + f"null={null_dist['mean']:.4f}±{null_dist['std']:.4f} " + f"Δ={effect:+.4f} p={p_two_sided:.4f} {sig_str} ({dir_str})") + + # ── Step 4: Large prime scales (via sympy.nextprime) ────────────────── + print("\n--- Step 4: Large prime scales vs random null ---") + for scale_name, start_val in large_scales.items(): + try: + import sympy + except ImportError: + print(f" sympy not available, skipping {scale_name}") + continue + + for size in sizes: + node_id = f"primes_{scale_name}_s{size}" + t0 = time.time() + cluster = prime_cluster_via_sympy(start_val, size) + metrics = sidon_metrics(cluster) + + range_min = min(cluster) + range_max = max(cluster) + null_dist = random_sidon_score(size, range_min, range_max, N_TRIALS, rng) + + null_scores = [] + for _ in range(N_TRIALS): + sample = sorted(rng.sample(range(range_min, range_max + 1), size)) + null_scores.append(sidon_metrics(sample)["sidon_score"]) + null_scores.sort() + p_less = sum(1 for s in null_scores if s <= metrics["sidon_score"]) / N_TRIALS + p_greater = sum(1 for s in null_scores if s >= metrics["sidon_score"]) / N_TRIALS + p_two_sided = min(1.0, 2 * min(p_less, p_greater)) + + effect = round(metrics["sidon_score"] - null_dist["mean"], 4) + significant = p_two_sided < 0.05 + + elapsed = time.time() - t0 + + dag.add_node(node_id, "prime_set", + {"size": size, "scale": scale_name, "labels": cluster, + "range": [range_min, range_max], "null_trials": N_TRIALS}, + {**metrics, "null_distribution": null_dist, + "p_value_two_sided": round(p_two_sided, 4), + "effect_size": effect, "significant": significant}, + "success", elapsed) + + results.append({ + "desc": node_id, "scale": scale_name, "n_labels": size, + "labels": cluster, "metrics": metrics, + "null_distribution": null_dist, + "p_value": round(p_two_sided, 4), + "effect_size": effect, + "significant": significant, + }) + + sig_str = "***" if significant else "" + dir_str = "LESS Sidon-like" if effect < 0 else "MORE Sidon-like" + print(f" {node_id:30s} score={metrics['sidon_score']:.4f} " + f"null={null_dist['mean']:.4f}±{null_dist['std']:.4f} " + f"Δ={effect:+.4f} p={p_two_sided:.4f} {sig_str} ({dir_str})") + + # ── Step 5: Cross-scale analysis ────────────────────────────────────── + print("\n--- Step 5: Cross-scale analysis ---") + + analysis = [] + for size in sizes: + size_results = [r for r in results if r["n_labels"] == size] + + # How many are significant? + n_sig = sum(1 for r in size_results if r["significant"]) + n_total = len(size_results) + all_sig = n_sig == n_total + + # Direction of effect + neg_effects = sum(1 for r in size_results if r["effect_size"] < 0) + pos_effects = sum(1 for r in size_results if r["effect_size"] > 0) + + # Score trend with scale + scores_by_scale = {r["scale"]: r["metrics"]["sidon_score"] for r in size_results} + ascending_scales = [s for s in ["small", "kilo", "million", "billion", "trillion", "quadrillion", "quintillion"] if s in scores_by_scale] + score_trend = [scores_by_scale[s] for s in ascending_scales] + increasing = all(score_trend[i] <= score_trend[i+1] for i in range(len(score_trend)-1)) + + analysis.append({ + "size": size, + "n_significant": n_sig, + "n_total": n_total, + "all_significant": all_sig, + "negative_effects": neg_effects, + "positive_effects": pos_effects, + "score_trend_increasing": increasing, + "scores_by_scale": scores_by_scale, + }) + + print(f" size={size}: {n_sig}/{n_total} significant, " + f"{neg_effects} less Sidon-like, {pos_effects} more Sidon-like, " + f"trend={'↑' if increasing else '~'}") + + # ── Step 6: Summary ───────────────────────────────────────────────── + print("\n--- Summary ---") + total_sig = sum(1 for r in results if r["significant"]) + total_cases = len(results) + + print(f" Total test cases: {total_cases}") + print(f" Significant at p<0.05: {total_sig}/{total_cases}") + print() + print(f" Key question: are prime Sidon scores different from random") + print(f" n-subsets of integers at the same scale?") + print(f" Answer: {total_sig}/{total_cases} cases show significant deviation.") + + # Summary node + summary_node = { + "schema": "prime_sidon_explore_v2", + "claim_boundary": "prime-sidon-vs-random-null:permutation-test", + "config": {"sizes": sizes, "scales": list(scales.keys()) + list(large_scales.keys()), + "null_trials": N_TRIALS}, + "analysis": analysis, + "total_test_cases": total_cases, + "total_significant": total_sig, + } + dag.add_node("summary", "summary", summary_node, summary_node, "success", 0.0) + for r in results: + dag.add_edge(f"primes_{r['scale']}_s{r['n_labels']}", "summary", "feeds_summary") + + # ── Save ────────────────────────────────────────────────────────────── + dag.save() + report_path = dag.save_report() + + with open(OUTPUT_PATH, "w") as f: + json.dump(summary_node, f, indent=2, default=str) + + print(f"\n DAG nodes: {len(dag.nodes)}") + print(f" DAG edges: {len(dag.edges)}") + print(f" DAG: {DAG_PATH}") + print(f" Report: {report_path}") + print("=" * 60) + +if __name__ == "__main__": + explore()