From 13c5865a574bba684b6609154e72c1efea5f1f3b Mon Sep 17 00:00:00 2001 From: Gonzalo-Mier Date: Sat, 17 Oct 2026 18:57:25 +0200 Subject: [PATCH 1/4] Screen idle-axis assignments with CP-SAT and exact replay --- .../ORTOOLS-RESULT.json | 3613 +++++++++++++++++ .../idle-star-paired-axis-census/README.md | 28 +- .../idle-star-paired-axis-census/RESULT.json | 821 +++- .../idle-star-paired-axis-census/SOURCES.json | 8 +- .../idle-star-paired-axis-census/TASK.json | 20 +- .../idle-star-paired-axis-census/VERIFY.json | 2 +- .../ortools_screen.py | 267 ++ .../idle-star-paired-axis-census/verify.py | 66 +- 8 files changed, 4796 insertions(+), 29 deletions(-) create mode 100644 research/idle-star-paired-axis-census/ORTOOLS-RESULT.json create mode 100644 research/idle-star-paired-axis-census/ortools_screen.py diff --git a/research/idle-star-paired-axis-census/ORTOOLS-RESULT.json b/research/idle-star-paired-axis-census/ORTOOLS-RESULT.json new file mode 100644 index 0000000000..4ba8d6b062 --- /dev/null +++ b/research/idle-star-paired-axis-census/ORTOOLS-RESULT.json @@ -0,0 +1,3613 @@ +{ + "all_models_optimal": true, + "base_main": "997e6a9ca7b4f95d50e366f61412fd640d72a88a", + "fill_payload_sha256": "8f4d6965ba573ff2b71fd7bf6b552643e086739d90bd73c55889502077638e00", + "model": { + "children": [ + 8, + 10, + 12, + 13 + ], + "lexicographic_tiebreak": "minimum number of moved residual-axis tokens", + "objective": "minimize sum(rank ** (1 - saving))", + "objective_scale": 1000000000000, + "rank_cap": 51, + "saving_scale": 0.00167546, + "seed": 0, + "threads": 1, + "time_limit_seconds_per_stage": 45.0, + "tokens_per_port": 192 + }, + "ports": 112, + "rank_imbalances_found": 112, + "rank_moment_comparison_per_port": { + "baseline_profile": [ + 48, + 48, + 48, + 48 + ], + "baseline_unscaled_moment": 190.7587097327234, + "candidate_minus_baseline": -0.0019571899125878645, + "candidate_profile": [ + 51, + 51, + 51, + 39 + ], + "candidate_unscaled_moment": 190.7567525428108, + "note": "ranking surrogate only; the source-bound physical operator rejects every nominated assignment, so this is not a \u03ba improvement", + "relative_change": -1.0260029098208001e-05 + }, + "representative_witnesses_by_character": [ + { + "character": 1, + "differences": [ + [ + 0, + 0, + [ + 0, + 1 + ], + [ + -1, + 0 + ] + ], + [ + 0, + 2, + [ + 0, + 0 + ], + [ + -1, + -1 + ] + ], + [ + 7, + 7, + [ + 0, + 1 + ], + [ + 1, + 0 + ] + ] + ], + "moved_tokens": [ + [ + 8, + 13, + 1048576 + ], + [ + 8, + 13, + 8388608 + ], + [ + 10, + 13, + 7 + ], + [ + 12, + 8, + 562949953421312 + ], + [ + 12, + 8, + 1125899906842624 + ], + [ + 12, + 10, + 2251799813685248 + ], + [ + 12, + 10, + 4503599627370496 + ], + [ + 12, + 8, + 9007199254740992 + ], + [ + 12, + 8, + 18014398509481984 + ], + [ + 12, + 10, + 2305843009213693952 + ], + [ + 12, + 8, + 18446744073709551616 + ], + [ + 12, + 10, + 2361183241434822606848 + ] + ], + "port": 2 + }, + { + "character": 2, + "differences": [ + [ + 0, + 0, + [ + 0, + 1 + ], + [ + -1, + 0 + ] + ], + [ + 0, + 2, + [ + 0, + 0 + ], + [ + -1, + -1 + ] + ], + [ + 7, + 7, + [ + 0, + 1 + ], + [ + 1, + 0 + ] + ] + ], + "moved_tokens": [ + [ + 8, + 13, + 1048576 + ], + [ + 8, + 13, + 8388608 + ], + [ + 10, + 13, + 446 + ], + [ + 12, + 8, + 562949953421312 + ], + [ + 12, + 8, + 1125899906842624 + ], + [ + 12, + 10, + 2251799813685248 + ], + [ + 12, + 10, + 4503599627370496 + ], + [ + 12, + 8, + 9007199254740992 + ], + [ + 12, + 8, + 18014398509481984 + ], + [ + 12, + 10, + 2305843009213693952 + ], + [ + 12, + 8, + 18446744073709551616 + ], + [ + 12, + 10, + 2361183241434822606848 + ] + ], + "port": 107 + }, + { + "character": 32, + "differences": [ + [ + 0, + 0, + [ + 0, + 1 + ], + [ + -1, + 0 + ] + ], + [ + 0, + 2, + [ + 0, + 0 + ], + [ + -1, + -1 + ] + ], + [ + 7, + 7, + [ + 0, + 1 + ], + [ + 1, + 0 + ] + ] + ], + "moved_tokens": [ + [ + 8, + 13, + 1048576 + ], + [ + 8, + 13, + 8388608 + ], + [ + 10, + 13, + 32 + ], + [ + 12, + 8, + 562949953421312 + ], + [ + 12, + 8, + 1125899906842624 + ], + [ + 12, + 10, + 2251799813685248 + ], + [ + 12, + 10, + 4503599627370496 + ], + [ + 12, + 8, + 9007199254740992 + ], + [ + 12, + 8, + 18014398509481984 + ], + [ + 12, + 10, + 2305843009213693952 + ], + [ + 12, + 8, + 18446744073709551616 + ], + [ + 12, + 10, + 2361183241434822606848 + ] + ], + "port": 0 + } + ], + "results": [ + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 0, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.538362607 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 1, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5374976820000001 + }, + { + "assignment_sha256": "3d9650d02677f5d4b7e21c06b494c637e81214c6985ae6271cca6053f6db9847", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 2, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.531924824 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 3, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5511990050000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 4, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.540791371 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 5, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5575953960000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 6, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.544994709 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 7, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5836590130000001 + }, + { + "assignment_sha256": "3d9650d02677f5d4b7e21c06b494c637e81214c6985ae6271cca6053f6db9847", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 8, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.554922013 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 9, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.59152295 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 10, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.554561555 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 11, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5491160620000002 + }, + { + "assignment_sha256": "2fe566b93bdf388fb1d502505b208bab6e77458710a0d4001e6601a6b082468d", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 12, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.546972687 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 13, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.550847778 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 14, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5531977170000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 15, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5596461270000002 + }, + { + "assignment_sha256": "85cd05220c51038bddefa8ada56cd8bd48ad01208973a056c4929ee9a80ced24", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 16, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.554809815 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 17, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5605447350000001 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 18, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5752743340000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 19, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.558407026 + }, + { + "assignment_sha256": "b17c1e6159d4dec59aad9432caf69bbd22d694000ef4b0ed547bd242b2ba6b47", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 20, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.555747086 + }, + { + "assignment_sha256": "7bd0708c1218d373435c3fc124f406cba001a0a8e1f7ce4bec5f744ca3d3c7fe", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 21, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.556783131 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 22, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.559376126 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 23, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.551085048 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 24, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5703867740000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 25, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5706203870000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 26, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.555397366 + }, + { + "assignment_sha256": "3d9650d02677f5d4b7e21c06b494c637e81214c6985ae6271cca6053f6db9847", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 27, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5672426460000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 28, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.572504876 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 29, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.569060236 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 30, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5604975490000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 31, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5689096070000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 32, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5634186170000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 33, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.555294747 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 34, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.606868828 + }, + { + "assignment_sha256": "85cd05220c51038bddefa8ada56cd8bd48ad01208973a056c4929ee9a80ced24", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 35, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5602956220000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 36, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5641618110000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 37, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.564051493 + }, + { + "assignment_sha256": "fe864ac16287a33ad1be887ce7f832b542a15402908b06a432fc258042b4a741", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 38, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5644178290000001 + }, + { + "assignment_sha256": "b17c1e6159d4dec59aad9432caf69bbd22d694000ef4b0ed547bd242b2ba6b47", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 39, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5877907960000002 + }, + { + "assignment_sha256": "7bd0708c1218d373435c3fc124f406cba001a0a8e1f7ce4bec5f744ca3d3c7fe", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 40, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.559464634 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 41, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5690655720000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 42, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.561632834 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 43, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5691579990000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 44, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5653087940000001 + }, + { + "assignment_sha256": "464218c224d0a0c4d7b899495dbcc1501f52dcf294beb4732fb6213ebec855ee", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 45, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.569409858 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 46, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5664368530000001 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 47, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.581012058 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 48, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.573430589 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 49, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5687461770000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 50, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5643547 + }, + { + "assignment_sha256": "5be9103d289e0440892ee6951b224ea987ad906be2b199e7fb9e97211b3d8675", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 51, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5705639470000001 + }, + { + "assignment_sha256": "937d71f3845cc4edc3730deab94aed0ca9f8726776f3aec3cb9759f77fb4a007", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 52, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.578117994 + }, + { + "assignment_sha256": "28c581be8be6ed84ea393c63ed67ef74453853251e7d5341aebbdec6b634202e", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 53, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.575262482 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 54, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.564313811 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 55, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.576773353 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 56, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5644482990000002 + }, + { + "assignment_sha256": "877590b3eba3e9e33e4000424c330d6e1fd6848288935b44d745764ea838162e", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 57, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.575855744 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 58, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.572126745 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 59, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.581539743 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 60, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.574932417 + }, + { + "assignment_sha256": "1d7169846386ba0b6c9f698a57066cf1e55af0d0b890f9322b93139da9a27e0f", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 61, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.601870962 + }, + { + "assignment_sha256": "e2e6dcd1c95d89c4140bab119276591346298593dc3bcf2cc1a893297d590a8e", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 62, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.569669967 + }, + { + "assignment_sha256": "bf6bbdf54d9048a5863aefb56a52315b3c83def2a1564d4e188c384944195920", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 63, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5733937370000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 64, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.583946918 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 65, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.563602986 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 66, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5723706990000001 + }, + { + "assignment_sha256": "e235432d6d52ad27d8b2705b37bb42a3652c00c853e4f10a771e89141722c7ac", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 67, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.567638172 + }, + { + "assignment_sha256": "57d7c3424317daf82ba71f83ca981e67efa38883036972e2a8c0547df891c99b", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 68, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.572215688 + }, + { + "assignment_sha256": "1903e9489932d045c79ddb77694fdf7cff06c19191298379c3845d3256eafeed", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 69, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.567548718 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 70, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5726288080000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 71, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5625512400000001 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 72, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5783239130000002 + }, + { + "assignment_sha256": "ed9e7a66a822597564f9379038811b9afa9fbc58489536ed448b9be086b5f686", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 73, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5721086450000001 + }, + { + "assignment_sha256": "bdfa6fbfb6dc712d7a201a475a652b68be01149e48933f473bf29a08ff9f24a9", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 74, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.577404889 + }, + { + "assignment_sha256": "ee522bd92a8a5d1190731afdc71f9f9f0267072b7a3e7078b1f48b819640bce3", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 75, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5752017450000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 76, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.586910131 + }, + { + "assignment_sha256": "17facd66696a3e86d97f08d3a2a88feb76454bfc4907eb0375af0b684cfb04ca", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 77, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.58229981 + }, + { + "assignment_sha256": "7861bc472a5749cd03434fa49ab0257b2ba11efbe8542be29920e070bd77c0bc", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 78, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5794228670000001 + }, + { + "assignment_sha256": "5146c17cdbcd81b38c70a3592647e83356c0ac4c34d3b23e361d78b09bb43fa5", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 79, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5972551270000002 + }, + { + "assignment_sha256": "424bf85e7c680adcc5a32c268b82fb391b1f5083f965d8d9b59b63c7a06710b8", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 80, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.592531995 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 81, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5995823390000001 + }, + { + "assignment_sha256": "d7646caadf38cbfb302b8ea24b7ea65cb367b3f63abf0e49c14b590f78bef49a", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 82, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5807749400000002 + }, + { + "assignment_sha256": "c7891da7575dfc4fb73ff81d279ac0a74fdec15ad6fdc57c7995ede75558613c", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 83, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5906867630000001 + }, + { + "assignment_sha256": "def293757d38a3399f8143c075edebf917324d50ddd43306445abad6bae698b3", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 84, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.578073437 + }, + { + "assignment_sha256": "7861bc472a5749cd03434fa49ab0257b2ba11efbe8542be29920e070bd77c0bc", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 85, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.597112359 + }, + { + "assignment_sha256": "5146c17cdbcd81b38c70a3592647e83356c0ac4c34d3b23e361d78b09bb43fa5", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 86, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.580386195 + }, + { + "assignment_sha256": "424bf85e7c680adcc5a32c268b82fb391b1f5083f965d8d9b59b63c7a06710b8", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 87, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5831214530000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 88, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.566721647 + }, + { + "assignment_sha256": "d7646caadf38cbfb302b8ea24b7ea65cb367b3f63abf0e49c14b590f78bef49a", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 89, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.581186787 + }, + { + "assignment_sha256": "c7891da7575dfc4fb73ff81d279ac0a74fdec15ad6fdc57c7995ede75558613c", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 90, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.587499699 + }, + { + "assignment_sha256": "def293757d38a3399f8143c075edebf917324d50ddd43306445abad6bae698b3", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 91, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.582783689 + }, + { + "assignment_sha256": "5146c17cdbcd81b38c70a3592647e83356c0ac4c34d3b23e361d78b09bb43fa5", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 92, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.584255981 + }, + { + "assignment_sha256": "424bf85e7c680adcc5a32c268b82fb391b1f5083f965d8d9b59b63c7a06710b8", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 93, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.599000436 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 94, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.702029486 + }, + { + "assignment_sha256": "d7646caadf38cbfb302b8ea24b7ea65cb367b3f63abf0e49c14b590f78bef49a", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 95, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.577467782 + }, + { + "assignment_sha256": "c7891da7575dfc4fb73ff81d279ac0a74fdec15ad6fdc57c7995ede75558613c", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 96, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.587654005 + }, + { + "assignment_sha256": "def293757d38a3399f8143c075edebf917324d50ddd43306445abad6bae698b3", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 97, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5743403420000002 + }, + { + "assignment_sha256": "424bf85e7c680adcc5a32c268b82fb391b1f5083f965d8d9b59b63c7a06710b8", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 98, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.577053108 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 99, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.572343249 + }, + { + "assignment_sha256": "d7646caadf38cbfb302b8ea24b7ea65cb367b3f63abf0e49c14b590f78bef49a", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 100, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.585161336 + }, + { + "assignment_sha256": "c7891da7575dfc4fb73ff81d279ac0a74fdec15ad6fdc57c7995ede75558613c", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 101, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.582267539 + }, + { + "assignment_sha256": "def293757d38a3399f8143c075edebf917324d50ddd43306445abad6bae698b3", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 102, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5835236140000002 + }, + { + "assignment_sha256": "1eb45b258b9ff7736dcfa45f8303ef1bf1db3648a8f5f27b014eb535728846ba", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 103, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 206, + "characters_tested_before_first_mismatch": 10, + "first_mismatch_character": 32, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.577884094 + }, + { + "assignment_sha256": "d7646caadf38cbfb302b8ea24b7ea65cb367b3f63abf0e49c14b590f78bef49a", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 104, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.6007528940000002 + }, + { + "assignment_sha256": "c7891da7575dfc4fb73ff81d279ac0a74fdec15ad6fdc57c7995ede75558613c", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 105, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5775965 + }, + { + "assignment_sha256": "def293757d38a3399f8143c075edebf917324d50ddd43306445abad6bae698b3", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 106, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.597497836 + }, + { + "assignment_sha256": "d08fd19e19107ddeadb500f7529c49911e0cd7c9a680658de351cca6dc83b28e", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 107, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 2, + "first_mismatch_character": 2, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5860905630000002 + }, + { + "assignment_sha256": "6645bb642a7d34c4f7d9292b2586bf275f245b94eaf5fc7ce372111ccea9ef53", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 108, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 2, + "first_mismatch_character": 2, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.5898921480000001 + }, + { + "assignment_sha256": "9d373acb876a23228cda74d15b4352f8b486d6b864b0dbf6a2f0b44916b4ee1f", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 109, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 2, + "first_mismatch_character": 2, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.58299878 + }, + { + "assignment_sha256": "c7891da7575dfc4fb73ff81d279ac0a74fdec15ad6fdc57c7995ede75558613c", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 110, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.6013665510000001 + }, + { + "assignment_sha256": "def293757d38a3399f8143c075edebf917324d50ddd43306445abad6bae698b3", + "baseline_rank_vector": { + "10": 48, + "12": 48, + "13": 48, + "8": 48 + }, + "conflict_constraints": 768, + "moves": 12, + "port": 111, + "primary_status": "OPTIMAL", + "rank_moment_surrogate": 190756752542812, + "rank_vector": { + "10": 51, + "12": 39, + "13": 51, + "8": 51 + }, + "screen": { + "candidate_character_set_size": 207, + "characters_tested_before_first_mismatch": 1, + "first_mismatch_character": 1, + "matrix_difference_count": 3, + "matrix_difference_sha256": "8f983b054df11d92aea967d37ce104c0f8725d0372facbe07b92fb2d91ef85c9" + }, + "status": "OPTIMAL", + "wall_seconds": 1.580938731 + } + ], + "scope": "one CP-SAT optimum with minimum move count per port; exact replay screens the listed Fourier characters and stops at the first mismatch", + "screen_survivors": [], + "solver_environment": { + "ortools": "9.11.4210", + "python": "3.10.12" + } +} diff --git a/research/idle-star-paired-axis-census/README.md b/research/idle-star-paired-axis-census/README.md index 6d76e96da7..85436630e0 100644 --- a/research/idle-star-paired-axis-census/README.md +++ b/research/idle-star-paired-axis-census/README.md @@ -1,22 +1,30 @@ -# Paired idle-axis transfers do not repair the T740 star profile +# T740 idle-axis reassignment: exact transfer census and CP-SAT screen -**Scoped negative result; no new κ or admitted supplier.** PR #3184 claims a conditional κ of `0.001730189061233850760095…` from redistributing idle rank-48 axes. PR #3187 supplies an exact physical-operator counterexample to its first committed one-stream move. This package checks the most direct symmetry repair: move the same residual axis on both channels of a child pair, so the phase on that pair is scalar, then transfer it to another pair. +**Scoped negative result; no new κ or admitted supplier.** PR #3184 claims a conditional κ of `0.001730189061233850760095…` from redistributing idle rank-48 axes. PR #3187 gives an exact physical-operator counterexample to its first committed one-stream move. This package checks two ways to repair that failure: move one axis between the four rank-48 children, or move the same residual axis on both channels of one child pair so its phase is scalar. ## Result -Using the authenticated PR3148 T740 fill (`SHA256 8f4d6965…e00`), we checked all 112 port recipes for owner replica zero. A candidate moves an axis present in both residual children 8 and 10 to both children 12 and 13, or makes the reverse transfer. It must be orthogonal to every original axis of both destination children, including hosted axes, so the move changes child ranks rather than replacing a nonorthogonal destination direction. +Using the authenticated PR3148 T740 fill (`SHA256 8f4d6965…e00`), we checked all 112 port recipes for owner replica zero. A single-axis candidate moves one residual axis from one of children 8, 10, 12 or 13 to another, and must be orthogonal to every original destination axis, including hosted axes. A paired candidate moves the same axis on both streams of child pair `(8,10)` to both streams of `(12,13)`, or in reverse, under the same destination rule. The exact eight-stream replay found: -- **2,688** eligible forward transfers; all 2,688 change the physical operator at the moved axis character. -- **2,688** eligible reverse transfers; all 2,688 change the physical operator at the moved axis character. Each of the 112 recipes has 24 candidates in each direction. +- **21,504** eligible single-axis transfers; all 21,504 change the physical operator at the moved axis character (**192 per port**). +- **2,688** eligible forward paired transfers and **2,688** reverse paired transfers; all 5,376 change the operator (**24 per port in each direction**). - A 147-mode baseline control passes for port 0, and the zero-character identity passes for all ports. The complete fill journal and payload authenticate, and a mutated journal preimage is rejected. -For a concrete witness, port 0 and axis 7 change six entries of the exact Gaussian-integer matrix. For example, entry `(0,0)` changes from `[0,-1]` to `[1,0]`. `RESULT.json` contains the full before/after matrices and per-port counts. +For a concrete single-axis witness, port 0 moves axis 7 from child 8 to child 12. The baseline and overlay differ in three matrix entries; `(1,1)` changes from `[0,-1]` to `[1,0]`. `RESULT.json` contains the full before/after matrices and per-port counts for both witness types. -This also rejects every simultaneous nonempty set of transfers **within this restricted class**. Axes eligible in one direction are orthogonal to the complete destination basis; each source residual basis is orthonormal. Thus all selected axes, in both directions, are pairwise orthogonal. At the character equal to any one selected axis, every other moved phase is inactive, leaving the same one-transfer counterexample. +Within the paired-transfer family, eligible axes are pairwise orthogonal: each source residual basis is orthonormal, and forward candidates are orthogonal to the full reverse destination basis. At the character equal to any one selected axis, every other moved phase is inactive, so any simultaneous nonempty set of those paired transfers retains a one-transfer counterexample. -This does not cover matched swaps that remove a nonorthogonal destination axis, longer cycles, other child/time pairs, nonzero replicas, or all operator-preserving assignments. It claims no general obstruction. The selected record and frontier are unchanged. +## OR-Tools assignment search + +To test whether cycles could evade those one- and two-axis screens, `ortools_screen.py` models each port's 192 residual-axis tokens as an assignment to children 8, 10, 12 and 13. It preserves the token multiset, fixed hosted axes and pairwise GF(2) orthogonality, and caps each resulting child rank at 51. CP-SAT minimizes the local moment surrogate `Σ r^(1-a)` at `a = 0.00167546`, then minimizes the number of moved tokens. The exact eight-stream replay screens each port's minimum-move optimum at the 73 unit characters, the moved axes, their pairwise XORs and 72 adjacent-pair characters; it stops at the first mismatch. + +All 112 port models were optimal. Each found the same best rank profile `[51,51,51,39]` from `[48,48,48,48]`, with 12 moved tokens. For those four rank terms, the surrogate falls by `0.0019571899` (about `1.026×10⁻⁵` relative). Every nominated assignment changes the exact operator at its first tested mismatch, on character `1`, `2` or `32`. The strongest structural profile is therefore not an admissible κ improvement. This search tests one minimum-move representative per port; it does not rule out another assignment with the same profile that preserves the operator. No full provider moment, κ or supplier admission is claimed. + +To reproduce the optional artifact, use Python 3.10.12 with OR-Tools 9.11.4210 and run `python3.10 -B research/idle-star-paired-axis-census/ortools_screen.py > research/idle-star-paired-axis-census/ORTOOLS-RESULT.json`. The registered exact-replay package does not depend on OR-Tools. `ORTOOLS-RESULT.json` records the solver candidates and their first exact replay counterexamples. + +The exact census does not cover arbitrary simultaneous single-axis moves whose moved vectors are not pairwise orthogonal, other child/time pairs, nonzero replicas, or all operator-preserving assignments. The CP-SAT result supplies a strongest rank-profile candidate for the stated four-child assignment model, but only one assignment at that profile is replayed per port. Neither experiment claims a general obstruction. The selected record and frontier are unchanged. ## Reproduce @@ -31,8 +39,8 @@ The verifier independently implements the exact eight-stream Gaussian-integer re ## Open next questions -See the structured tasks in [TASK.json](TASK.json). The nearest continuation is to enumerate matched swaps or short cycles in the 48-by-48 cross-Gram graph and test whether they can create net rank imbalance without changing the full stream operator. A different child/time pair needs its own exact insertion-to-insertion intertwiner and source-bound replay. +See the structured tasks in [TASK.json](TASK.json). The remaining question within this slice is whether a different assignment at `[51,51,51,39]` can preserve the complete operator; prioritize it only if the resulting four-child moment change can affect the full charged supplier profile. A different child/time pair needs its own insertion-to-insertion intertwiner and source-bound replay. ## Credit -The physical-stream criterion and the first exact PR3184 counterexample are due to Nick Petalas in [PR #3187](https://github.com/CrocSwap/integer-mult-bounds/pull/3187). The T740 fill and 145-row exchange journal are from Jeremy Diviney’s [PR #3148](https://github.com/CrocSwap/integer-mult-bounds/pull/3148); the underlying fill/provider notice and credits are retained unchanged from PR3133 in `vendor/`. The challenged profile claim is Rohan Arun’s [PR #3184](https://github.com/CrocSwap/integer-mult-bounds/pull/3184). Recipe, template, plan and dispatch retain their PR2979/selected-supplier lineage. This package adds an independently written exact replay and an exhaustive, source-bound census of one paired rank-changing transfer family. Prepared by OpenAI Codex with substantial AI assistance; no independent human or proof-assistant review is claimed. New work is Apache-2.0. +Gonzalo Mier’s [PR #1252](https://github.com/CrocSwap/integer-mult-bounds/pull/1252) already gives a commuting three-axis exchange for selected #1094 children. Nick Petalas’s [PR #3187](https://github.com/CrocSwap/integer-mult-bounds/pull/3187) supplies the physical-stream criterion and first exact counterexample to the current PR3184 move. The T740 fill and 145-row exchange journal are from Jeremy Diviney’s [PR #3148](https://github.com/CrocSwap/integer-mult-bounds/pull/3148); the underlying fill/provider notice and credits are retained unchanged from PR3133 in `vendor/`. The challenged profile claim is Rohan Arun’s [PR #3184](https://github.com/CrocSwap/integer-mult-bounds/pull/3184). Recipe, template, plan and dispatch retain their PR2979/selected-supplier lineage. This package adds an independently written exact replay, a source-bound transfer census and an optional OR-Tools candidate search. Prepared by OpenAI Codex with substantial AI assistance; no independent human or proof-assistant review is claimed. New work is Apache-2.0. diff --git a/research/idle-star-paired-axis-census/RESULT.json b/research/idle-star-paired-axis-census/RESULT.json index daab4e70d3..7e6d6f0ac3 100644 --- a/research/idle-star-paired-axis-census/RESULT.json +++ b/research/idle-star-paired-axis-census/RESULT.json @@ -11,6 +11,8 @@ "per_port_counts": [ [ 0, + 192, + 192, 24, 24, 24, @@ -18,6 +20,8 @@ ], [ 1, + 192, + 192, 24, 24, 24, @@ -25,6 +29,8 @@ ], [ 2, + 192, + 192, 24, 24, 24, @@ -32,6 +38,8 @@ ], [ 3, + 192, + 192, 24, 24, 24, @@ -39,6 +47,8 @@ ], [ 4, + 192, + 192, 24, 24, 24, @@ -46,6 +56,8 @@ ], [ 5, + 192, + 192, 24, 24, 24, @@ -53,6 +65,8 @@ ], [ 6, + 192, + 192, 24, 24, 24, @@ -60,6 +74,8 @@ ], [ 7, + 192, + 192, 24, 24, 24, @@ -67,6 +83,8 @@ ], [ 8, + 192, + 192, 24, 24, 24, @@ -74,6 +92,8 @@ ], [ 9, + 192, + 192, 24, 24, 24, @@ -81,6 +101,8 @@ ], [ 10, + 192, + 192, 24, 24, 24, @@ -88,6 +110,8 @@ ], [ 11, + 192, + 192, 24, 24, 24, @@ -95,6 +119,8 @@ ], [ 12, + 192, + 192, 24, 24, 24, @@ -102,6 +128,8 @@ ], [ 13, + 192, + 192, 24, 24, 24, @@ -109,6 +137,8 @@ ], [ 14, + 192, + 192, 24, 24, 24, @@ -116,6 +146,8 @@ ], [ 15, + 192, + 192, 24, 24, 24, @@ -123,6 +155,8 @@ ], [ 16, + 192, + 192, 24, 24, 24, @@ -130,6 +164,8 @@ ], [ 17, + 192, + 192, 24, 24, 24, @@ -137,6 +173,8 @@ ], [ 18, + 192, + 192, 24, 24, 24, @@ -144,6 +182,8 @@ ], [ 19, + 192, + 192, 24, 24, 24, @@ -151,6 +191,8 @@ ], [ 20, + 192, + 192, 24, 24, 24, @@ -158,6 +200,8 @@ ], [ 21, + 192, + 192, 24, 24, 24, @@ -165,6 +209,8 @@ ], [ 22, + 192, + 192, 24, 24, 24, @@ -172,6 +218,8 @@ ], [ 23, + 192, + 192, 24, 24, 24, @@ -179,6 +227,8 @@ ], [ 24, + 192, + 192, 24, 24, 24, @@ -186,6 +236,8 @@ ], [ 25, + 192, + 192, 24, 24, 24, @@ -193,6 +245,8 @@ ], [ 26, + 192, + 192, 24, 24, 24, @@ -200,6 +254,8 @@ ], [ 27, + 192, + 192, 24, 24, 24, @@ -207,6 +263,8 @@ ], [ 28, + 192, + 192, 24, 24, 24, @@ -214,6 +272,8 @@ ], [ 29, + 192, + 192, 24, 24, 24, @@ -221,6 +281,8 @@ ], [ 30, + 192, + 192, 24, 24, 24, @@ -228,6 +290,8 @@ ], [ 31, + 192, + 192, 24, 24, 24, @@ -235,6 +299,8 @@ ], [ 32, + 192, + 192, 24, 24, 24, @@ -242,6 +308,8 @@ ], [ 33, + 192, + 192, 24, 24, 24, @@ -249,6 +317,8 @@ ], [ 34, + 192, + 192, 24, 24, 24, @@ -256,6 +326,8 @@ ], [ 35, + 192, + 192, 24, 24, 24, @@ -263,6 +335,8 @@ ], [ 36, + 192, + 192, 24, 24, 24, @@ -270,6 +344,8 @@ ], [ 37, + 192, + 192, 24, 24, 24, @@ -277,6 +353,8 @@ ], [ 38, + 192, + 192, 24, 24, 24, @@ -284,6 +362,8 @@ ], [ 39, + 192, + 192, 24, 24, 24, @@ -291,6 +371,8 @@ ], [ 40, + 192, + 192, 24, 24, 24, @@ -298,6 +380,8 @@ ], [ 41, + 192, + 192, 24, 24, 24, @@ -305,6 +389,8 @@ ], [ 42, + 192, + 192, 24, 24, 24, @@ -312,6 +398,8 @@ ], [ 43, + 192, + 192, 24, 24, 24, @@ -319,6 +407,8 @@ ], [ 44, + 192, + 192, 24, 24, 24, @@ -326,6 +416,8 @@ ], [ 45, + 192, + 192, 24, 24, 24, @@ -333,6 +425,8 @@ ], [ 46, + 192, + 192, 24, 24, 24, @@ -340,6 +434,8 @@ ], [ 47, + 192, + 192, 24, 24, 24, @@ -347,6 +443,8 @@ ], [ 48, + 192, + 192, 24, 24, 24, @@ -354,6 +452,8 @@ ], [ 49, + 192, + 192, 24, 24, 24, @@ -361,6 +461,8 @@ ], [ 50, + 192, + 192, 24, 24, 24, @@ -368,6 +470,8 @@ ], [ 51, + 192, + 192, 24, 24, 24, @@ -375,6 +479,8 @@ ], [ 52, + 192, + 192, 24, 24, 24, @@ -382,6 +488,8 @@ ], [ 53, + 192, + 192, 24, 24, 24, @@ -389,6 +497,8 @@ ], [ 54, + 192, + 192, 24, 24, 24, @@ -396,6 +506,8 @@ ], [ 55, + 192, + 192, 24, 24, 24, @@ -403,6 +515,8 @@ ], [ 56, + 192, + 192, 24, 24, 24, @@ -410,6 +524,8 @@ ], [ 57, + 192, + 192, 24, 24, 24, @@ -417,6 +533,8 @@ ], [ 58, + 192, + 192, 24, 24, 24, @@ -424,6 +542,8 @@ ], [ 59, + 192, + 192, 24, 24, 24, @@ -431,6 +551,8 @@ ], [ 60, + 192, + 192, 24, 24, 24, @@ -438,6 +560,8 @@ ], [ 61, + 192, + 192, 24, 24, 24, @@ -445,6 +569,8 @@ ], [ 62, + 192, + 192, 24, 24, 24, @@ -452,6 +578,8 @@ ], [ 63, + 192, + 192, 24, 24, 24, @@ -459,6 +587,8 @@ ], [ 64, + 192, + 192, 24, 24, 24, @@ -466,6 +596,8 @@ ], [ 65, + 192, + 192, 24, 24, 24, @@ -473,6 +605,8 @@ ], [ 66, + 192, + 192, 24, 24, 24, @@ -480,6 +614,8 @@ ], [ 67, + 192, + 192, 24, 24, 24, @@ -487,6 +623,8 @@ ], [ 68, + 192, + 192, 24, 24, 24, @@ -494,6 +632,8 @@ ], [ 69, + 192, + 192, 24, 24, 24, @@ -501,6 +641,8 @@ ], [ 70, + 192, + 192, 24, 24, 24, @@ -508,6 +650,8 @@ ], [ 71, + 192, + 192, 24, 24, 24, @@ -515,6 +659,8 @@ ], [ 72, + 192, + 192, 24, 24, 24, @@ -522,6 +668,8 @@ ], [ 73, + 192, + 192, 24, 24, 24, @@ -529,6 +677,8 @@ ], [ 74, + 192, + 192, 24, 24, 24, @@ -536,6 +686,8 @@ ], [ 75, + 192, + 192, 24, 24, 24, @@ -543,6 +695,8 @@ ], [ 76, + 192, + 192, 24, 24, 24, @@ -550,6 +704,8 @@ ], [ 77, + 192, + 192, 24, 24, 24, @@ -557,6 +713,8 @@ ], [ 78, + 192, + 192, 24, 24, 24, @@ -564,6 +722,8 @@ ], [ 79, + 192, + 192, 24, 24, 24, @@ -571,6 +731,8 @@ ], [ 80, + 192, + 192, 24, 24, 24, @@ -578,6 +740,8 @@ ], [ 81, + 192, + 192, 24, 24, 24, @@ -585,6 +749,8 @@ ], [ 82, + 192, + 192, 24, 24, 24, @@ -592,6 +758,8 @@ ], [ 83, + 192, + 192, 24, 24, 24, @@ -599,6 +767,8 @@ ], [ 84, + 192, + 192, 24, 24, 24, @@ -606,6 +776,8 @@ ], [ 85, + 192, + 192, 24, 24, 24, @@ -613,6 +785,8 @@ ], [ 86, + 192, + 192, 24, 24, 24, @@ -620,6 +794,8 @@ ], [ 87, + 192, + 192, 24, 24, 24, @@ -627,6 +803,8 @@ ], [ 88, + 192, + 192, 24, 24, 24, @@ -634,6 +812,8 @@ ], [ 89, + 192, + 192, 24, 24, 24, @@ -641,6 +821,8 @@ ], [ 90, + 192, + 192, 24, 24, 24, @@ -648,6 +830,8 @@ ], [ 91, + 192, + 192, 24, 24, 24, @@ -655,6 +839,8 @@ ], [ 92, + 192, + 192, 24, 24, 24, @@ -662,6 +848,8 @@ ], [ 93, + 192, + 192, 24, 24, 24, @@ -669,6 +857,8 @@ ], [ 94, + 192, + 192, 24, 24, 24, @@ -676,6 +866,8 @@ ], [ 95, + 192, + 192, 24, 24, 24, @@ -683,6 +875,8 @@ ], [ 96, + 192, + 192, 24, 24, 24, @@ -690,6 +884,8 @@ ], [ 97, + 192, + 192, 24, 24, 24, @@ -697,6 +893,8 @@ ], [ 98, + 192, + 192, 24, 24, 24, @@ -704,6 +902,8 @@ ], [ 99, + 192, + 192, 24, 24, 24, @@ -711,6 +911,8 @@ ], [ 100, + 192, + 192, 24, 24, 24, @@ -718,6 +920,8 @@ ], [ 101, + 192, + 192, 24, 24, 24, @@ -725,6 +929,8 @@ ], [ 102, + 192, + 192, 24, 24, 24, @@ -732,6 +938,8 @@ ], [ 103, + 192, + 192, 24, 24, 24, @@ -739,6 +947,8 @@ ], [ 104, + 192, + 192, 24, 24, 24, @@ -746,6 +956,8 @@ ], [ 105, + 192, + 192, 24, 24, 24, @@ -753,6 +965,8 @@ ], [ 106, + 192, + 192, 24, 24, 24, @@ -760,6 +974,8 @@ ], [ 107, + 192, + 192, 24, 24, 24, @@ -767,6 +983,8 @@ ], [ 108, + 192, + 192, 24, 24, 24, @@ -774,6 +992,8 @@ ], [ 109, + 192, + 192, 24, 24, 24, @@ -781,6 +1001,8 @@ ], [ 110, + 192, + 192, 24, 24, 24, @@ -788,6 +1010,8 @@ ], [ 111, + 192, + 192, 24, 24, 24, @@ -1419,11 +1643,606 @@ ] ] }, + "port0_single_witness": { + "axis": 7, + "baseline": [ + [ + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ] + ] + ], + "differences": [ + [ + 1, + 1, + [ + 0, + -1 + ], + [ + 1, + 0 + ] + ], + [ + 3, + 1, + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], + [ + 6, + 6, + [ + 0, + -1 + ], + [ + -1, + 0 + ] + ] + ], + "donor": 8, + "overlay": [ + [ + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 1, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 1, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ] + ] + ], + "receiver": 12 + }, "ports": 112, "reverse": { "eligible": 2688, "fail_at_own_axis_character": 2688 }, "selected_frontier_changed": false, - "status": "PASS_NO_OPERATOR_PRESERVING_RANK_CHANGING_PAIRED_TRANSFER" + "single_transfer": { + "eligible": 21504, + "fail_at_own_axis_character": 21504 + }, + "status": "PASS_NO_OPERATOR_PRESERVING_SINGLE_OR_PAIRED_RANK_TRANSFER" } diff --git a/research/idle-star-paired-axis-census/SOURCES.json b/research/idle-star-paired-axis-census/SOURCES.json index e23e4f3c99..b7c2f4b0be 100644 --- a/research/idle-star-paired-axis-census/SOURCES.json +++ b/research/idle-star-paired-axis-census/SOURCES.json @@ -74,6 +74,12 @@ "context": { "pr3184_head": "ffab383a5f78eb1a4ad4c7c7259a4f32b86f9481", "pr3187_head": "85cc6be02f5f912ac203449e06523ad53e6054d2", - "note": "PR3187\u2019s physical counterexample motivated this complementary census; the replay implementation in this package is independent." + "note": "PR3187’s physical counterexample motivated this complementary census; the replay implementation in this package is independent.", + "submission_refresh": { + "canonical_main": "463113d675af7410ac91d53a4fed51ec6494eb9a", + "priority_revision": 6, + "selected_kappa": "0.001672660197076918", + "note": "Refreshed before the PR update. Priority revision and selected result are unchanged; source files pinned above are unchanged. This checkpoint is context, not an input to verify.py." + } } } diff --git a/research/idle-star-paired-axis-census/TASK.json b/research/idle-star-paired-axis-census/TASK.json index f020a9a7d8..ecea0331a8 100644 --- a/research/idle-star-paired-axis-census/TASK.json +++ b/research/idle-star-paired-axis-census/TASK.json @@ -46,21 +46,21 @@ ] }, "scope_status": "refined", - "actual_scope": "Independent exact replay of the rank-changing paired-axis correction family suggested by PR3187: for each of the 112 T740 port recipes, move one common residual axis on both streams of child pair (8,10) to both streams of pair (12,13), or in reverse, subject to destination orthogonality. Check the actual hosted eight-stream operator at the moved axis character for every candidate, then derive the orthogonal-isolation argument for simultaneous candidates in this restricted class.", - "scope_change_reason": "PR3187 gives an exact counterexample to PR3184\u2019s first single-stream star move. This refines the independent-moment audit to the strongest immediate two-stream symmetry correction: transferring the same phase on both channels might commute where a single-channel transfer fails. The new replay is independently implemented and the scope is limited to this rank-changing paired family.", - "bottleneck_link": "A better rank histogram changes the moment only if the exact hosted eight-stream physical operator is preserved. This screen tests whether a natural paired correction can turn PR3184\u2019s structural idle-axis gains into an admissible profile; it does not price a new supplier.", + "actual_scope": "Independent exact replay of idle-axis redistribution on all 112 T740 port recipes for owner replica zero: test every eligible one-axis move among children (8,10,12,13); test the common-axis paired transfer from children (8,10) to (12,13) and its reverse; then use OR-Tools CP-SAT to optimize assignments of the 192 residual-axis tokens among those four children, preserving hosted-axis and pairwise orthogonality constraints with rank cap 51. Replay the minimum-move assignment attaining the best local rank-moment profile at its nominated Fourier characters.", + "scope_change_reason": "PR3187 gives an exact counterexample to PR3184’s first single-stream star move. After the single and paired census, the remaining matched-swap/longer-cycle question is naturally an assignment problem: an incoming vector may become feasible if a nonorthogonal destination vector leaves at the same time. OR-Tools is used only for candidate nomination and the local moment objective; the source-bound exact replay remains the physical acceptance test. The user explicitly favored OR-Tools for optimization.", + "bottleneck_link": "A better rank histogram changes the moment only if the exact hosted eight-stream physical operator is preserved. The CP-SAT screen finds the most uneven feasible four-child rank profile under the stated token, orthogonality and rank-cap model, then rejects its minimum-move representatives on all 112 ports. The local profile shift is not a new provider moment or κ.", "budget_minutes": 60, - "stop_rule": "Authenticate the complete T740 fill and all 112 recipes; verify a positive baseline; enumerate every paired common-axis transfer that raises destination rank without replacing a nonorthogonal destination axis; test the exact operator at its own character. Stop this family if all candidates fail. Do not generalize to matched swaps, longer cycles, other child pairs, replicas, or all operator-preserving assignments.", + "stop_rule": "Authenticate the complete T740 fill and all 112 recipes; verify positive baseline controls; enumerate eligible single-axis and paired transfers; for each port solve the residual-axis assignment model to optimality for the local moment surrogate and minimum move count, then exact-replay the nominated candidate on the recorded character set. Stop this bounded screen at the first mismatch for each candidate. Do not claim all assignments at the optimal rank profile fail, and do not generalize to other child pairs, replicas, or all operator-preserving assignments.", "outcome": "completed", - "evidence": "verify.py authenticates the PR3148 T740 payload SHA256 8f4d6965\u2026e00, checks the baseline on 147 modes for port 0 plus the zero-character identity for all ports, and tests 2,688 forward plus 2,688 reverse candidates (24 each direction on every one of 112 port recipes) for owner replica zero. Every candidate changes the exact Gaussian-integer stream matrix at its own Fourier character. Since eligible moved axes are pairwise orthogonal, any simultaneous nonempty set in this restricted class is isolated by one moved-axis character and fails too. Exact port-0 witness: axis 7; receipt is RESULT.json. No new kappa, supplier admission, or selected-frontier change.", + "evidence": "verify.py authenticates the PR3148 T740 payload SHA256 8f4d6965…e00, checks the baseline on 147 modes for port 0 plus the zero-character identity for all ports, and tests 21,504 single-axis candidates (192 per port), 2,688 forward paired candidates, and 2,688 reverse paired candidates across all 112 port recipes for owner replica zero. Every candidate changes the exact Gaussian-integer stream matrix at its own Fourier character; the paired candidates are pairwise isolated and any simultaneous nonempty subset of that restricted class retains a counterexample. Separately, optional CP-SAT 9.11.4210 runs 112 rank-assignment models to optimality. Each finds profile [51,51,51,39] from [48,48,48,48] with 12 moved tokens; the first tested exact mismatch is at character 1, 2 or 32 on every port. This is one minimum-move representative per port, not an exhaustive search of assignments at that profile. No new κ, supplier admission, or selected-frontier change.", "author": "OpenAI Codex", - "ai_assistance": "OpenAI Codex wrote the independent exact replay, source-bound census and package. No independent human review or proof-assistant verification is claimed.", + "ai_assistance": "OpenAI Codex wrote the independent exact replay, source-bound census, optional OR-Tools CP-SAT search and package. OR-Tools discovery used Python 3.10.12 / OR-Tools 9.11.4210. No independent human review or proof-assistant verification is claimed.", "open_questions": [ { - "question": "Can a net-rank-changing matched swap or longer axis cycle, which removes nonorthogonal destination directions while adding new ones, preserve the full operator across the intervening bridges?", - "why_it_matters": "The screened rank-changing family requires each incoming axis to be orthogonal to the full destination basis. Removing a matched axis relaxes that condition and is the simplest remaining way this child-pair geometry could evade the negative result.", - "first_step": "Build the 48-by-48 cross-Gram graph for each port, enumerate the smallest cycles that produce a nonzero child-rank imbalance, and replay each full overlay against the exact T740 schedule.", - "blocked_by": "No exact symbolic criterion for multi-axis cycles is supplied; cycle interactions can involve hosted phases and all intervening bridges." + "question": "Can a different assignment with the same locally optimal profile [51,51,51,39] preserve the full operator?", + "why_it_matters": "The minimum-move representative on each port fails, but the CP-SAT model leaves many assignments at that profile. A physically valid one would establish whether this structural rank gain can affect the provider moment.", + "first_step": "Before enumerating alternatives, charge the maximum local moment change against the complete provider profile. If it can change the decision, add CP-SAT no-good cuts for screened assignments and replay candidates over the complete character quotient or prove a compact exact criterion.", + "blocked_by": "The current receipt does not enumerate the remaining assignments or prove full-character operator equivalence; their possible κ effect has not been charged through the complete supplier invoice." }, { "question": "Does any other child/time pair on the T740 schedule admit a physically valid rank-changing transfer?", diff --git a/research/idle-star-paired-axis-census/VERIFY.json b/research/idle-star-paired-axis-census/VERIFY.json index 9a3d449cb4..9c3f103dcc 100644 --- a/research/idle-star-paired-axis-census/VERIFY.json +++ b/research/idle-star-paired-axis-census/VERIFY.json @@ -19,7 +19,7 @@ "{package}/verify.py" ], "timeout_seconds": 120, - "checks": "Exact source and retained-allocation pins; complete T740 fill authentication; baseline 147-mode control; forward/reverse rank-changing paired-transfer census across 112 recipes; own-axis-character operator comparisons; isolated port-0 witness; journal-mutation rejection; stored RESULT.json receipt." + "checks": "Exact source and retained-allocation pins; complete T740 fill authentication; baseline 147-mode control; 21,504 single-axis and 5,376 paired rank-changing transfer checks across 112 recipes; own-axis-character operator comparisons; exact witnesses; journal-mutation rejection; stored RESULT.json receipt." } ] } diff --git a/research/idle-star-paired-axis-census/ortools_screen.py b/research/idle-star-paired-axis-census/ortools_screen.py new file mode 100644 index 0000000000..e51325b493 --- /dev/null +++ b/research/idle-star-paired-axis-census/ortools_screen.py @@ -0,0 +1,267 @@ +#!/usr/bin/env python3 +"""Exploratory CP-SAT screen for net-rank-changing idle-axis reassignments. + +This is a discovery tool, not part of the registered admission verifier. It +uses the latter only to prepare an authenticated port, then lets OR-Tools +optimize assignments of the four rank-48 children while preserving the exact +multiset of residual axes and all within-child orthogonality constraints. +Every nominated assignment is still checked by the exact replay. +""" + +from __future__ import annotations + +import importlib.util +import hashlib +import json +import sys +from pathlib import Path + +from ortools.sat.python import cp_model +import ortools + + +ROOT = Path(__file__).resolve().parents[2] +PACKAGE = Path(__file__).resolve().parent +VERIFY = PACKAGE / "verify.py" +CHILDREN = (8, 10, 12, 13) +CHARACTER_BITS = 73 +MAX_CHILD_RANK = 51 +SAVING = 0.00167546 # selected-result complex-side scale; ranking surrogate only +SCALE = 10**12 +TIME_LIMIT = 45.0 + + +def load_verifier(): + spec = importlib.util.spec_from_file_location("idle_axis_verify", VERIFY) + module = importlib.util.module_from_spec(spec) + assert spec and spec.loader + spec.loader.exec_module(module) + return module + + +def prepare(v): + v.authenticate() + vendor = PACKAGE / "vendor" + base = v.decode(v.read_bytes(vendor / "BASE-FILL.json.gz"))["rows"] + journal = v.decode(v.read_bytes(vendor / "EXCHANGE.json")) + rows_by_port = v.project_all_ports(base, v.journal_edits(base, journal)) + order_base = v.decode(v.read_bytes(ROOT / "research/rank7-joint-endframes/allocation/ORDER.json")) + order = [[stage, replica + 74 * copy] for stage, replica in order_base for copy in range(10)] + dispatch_rows = v.decode(v.read_bytes(ROOT / "research/rank7-joint-endframes/allocation/DISPATCH.json")) + dispatch = {(stage, replica): tag for stage, replica, tag in dispatch_rows} + providers = v.decode(v.read_bytes(vendor / "PROVIDERS.json")) + plan = v.decode(v.read_bytes(ROOT / "research/rank7-joint-endframes/allocation/vendor/PLAN.json.gz")) + template = v.decode(v.read_bytes(ROOT / "research/rank7-joint-endframes/allocation/vendor/TEMPLATE.json.gz")) + recipes = v.decode(v.read_bytes(ROOT / "research/adaptive-kernel-demotion/inputs/DATA-PHASES.json"))["recipes"] + contexts = [ + v.prepare_port(port, rows_by_port[port], order, dispatch, providers, plan, template, recipes) + for port in range(len(recipes)) + ] + return contexts, v.stage_blocks(template) + + +def optimize(context): + def dot(left, right): + return (left & right).bit_count() & 1 + + model = cp_model.CpModel() + tokens = [(source, axis) for source in CHILDREN for axis in context["residual"][source]] + if len(tokens) != 192: + raise ValueError(f"expected 192 residual-axis tokens, got {len(tokens)}") + + x = {} + hosted = {child: context["hosted_axes"].get(child, []) for child in CHILDREN} + for t, (source, axis) in enumerate(tokens): + for child in CHILDREN: + x[t, child] = model.NewBoolVar(f"x_{t}_{child}") + if any(dot(axis, fixed) for fixed in hosted[child]): + model.Add(x[t, child] == 0) + model.AddExactlyOne(x[t, child] for child in CHILDREN) + + # A child's residual set must be an orthonormal basis with its fixed hosted + # axes. Pairwise forbidden assignments encode this exact GF(2) Gram test. + conflicts = 0 + for i, (_, left) in enumerate(tokens): + for j in range(i + 1, len(tokens)): + right = tokens[j][1] + if dot(left, right): + for child in CHILDREN: + model.Add(x[i, child] + x[j, child] <= 1) + conflicts += 1 + + ranks = {} + for child in CHILDREN: + hosted_count = len(hosted[child]) + ranks[child] = model.NewIntVar(hosted_count, MAX_CHILD_RANK, f"rank_{child}") + model.Add(ranks[child] == hosted_count + sum(x[t, child] for t in range(len(tokens)))) + high = model.NewIntVar(0, MAX_CHILD_RANK, "maximum_child_rank") + model.AddMaxEquality(high, list(ranks.values())) + model.Add(high >= 49) # demand a nonzero rank imbalance from 48/48/48/48 + + exponent = 1.0 - SAVING + score_table = [round(SCALE * (rank ** exponent)) for rank in range(MAX_CHILD_RANK + 1)] + scores = {} + for child in CHILDREN: + scores[child] = model.NewIntVar(0, max(score_table), f"score_{child}") + model.AddElement(ranks[child], score_table, scores[child]) + total_score = model.NewIntVar(0, len(CHILDREN) * max(score_table), "total_rank_moment") + model.Add(total_score == sum(scores.values())) + model.Minimize(total_score) + + solver = cp_model.CpSolver() + solver.parameters.max_time_in_seconds = TIME_LIMIT + solver.parameters.num_search_workers = 1 + solver.parameters.random_seed = 0 + primary_status = solver.Solve(model) + if primary_status not in (cp_model.OPTIMAL, cp_model.FEASIBLE): + status = primary_status + else: + best_moment = solver.Value(total_score) + model.Add(total_score == best_moment) + moved_count = sum(1 - x[t, source] for t, (source, _) in enumerate(tokens)) + model.Minimize(moved_count) + secondary_solver = cp_model.CpSolver() + secondary_solver.parameters.max_time_in_seconds = TIME_LIMIT + secondary_solver.parameters.num_search_workers = 1 + secondary_solver.parameters.random_seed = 0 + status = secondary_solver.Solve(model) + if status in (cp_model.OPTIMAL, cp_model.FEASIBLE): + solver = secondary_solver + result = { + "solver": "OR-Tools CP-SAT", + "ortools_version": ortools.__version__, + "python": sys.version.split()[0], + "status": solver.StatusName(status), + "wall_seconds": solver.WallTime(), + "primary_status": solver.StatusName(primary_status), + "conflict_constraints": conflicts, + "token_count": len(tokens), + "hosted_counts": {str(c): len(hosted[c]) for c in CHILDREN}, + } + if status not in (cp_model.OPTIMAL, cp_model.FEASIBLE): + return result, None + + destinations = [next(c for c in CHILDREN if solver.Value(x[t, c])) for t in range(len(tokens))] + trial = {child: list(values) for child, values in context["residual"].items()} + for child in CHILDREN: + trial[child] = [] + for (source, axis), destination in zip(tokens, destinations): + trial[destination].append(axis) + + rank_vector = {str(c): len(hosted[c]) + len(trial[c]) for c in CHILDREN} + moved = [(source, destination, axis) for (source, axis), destination in zip(tokens, destinations) if source != destination] + result.update({ + "rank_vector": rank_vector, + "rank_moment_surrogate": solver.Value(total_score), + "moves": len(moved), + "moved_tokens": [[s, d, a] for s, d, a in moved], + "baseline_rank_vector": {str(c): len(hosted[c]) + len(context["residual"][c]) for c in CHILDREN}, + }) + return result, trial + + +def replay_screen(v, context, blocks, trial): + baseline = context["residual"] + moved_axes = sorted({axis for child in CHILDREN for axis in set(baseline[child]) ^ set(trial[child])}) + chars = {1 << bit for bit in range(CHARACTER_BITS)} + chars.update(moved_axes) + chars.update(a ^ b for i, a in enumerate(moved_axes) for b in moved_axes[i + 1 :]) + chars.update((1 << bit) | (1 << (bit + 1)) for bit in range(CHARACTER_BITS - 1)) + failures = [] + checked = 0 + for character in sorted(chars): + checked += 1 + before = v.replay(context, baseline, character, blocks) + after = v.replay(context, trial, character, blocks) + if before != after: + failures.append({"character": character, "differences": v.matrix_differences(before, after)}) + break + return {"characters_tested_before_first_mismatch": checked, "candidate_character_set_size": len(chars), "failures_seen": len(failures), "first_failures": failures} + + +def main(): + v = load_verifier() + contexts, blocks = prepare(v) + summaries = [] + representative_witnesses = {} + for port, context in enumerate(contexts): + result, trial = optimize(context) + if trial is not None: + result["exact_replay_screen"] = replay_screen(v, context, blocks, trial) + moved_tokens = result.pop("moved_tokens", []) + assignment_digest = hashlib.sha256( + json.dumps(moved_tokens, separators=(",", ":")).encode("ascii") + ).hexdigest() + screen = result.pop("exact_replay_screen", None) + first_mismatch = screen["first_failures"][0] if screen and screen["first_failures"] else None + if first_mismatch is not None: + character_key = str(first_mismatch["character"]) + if character_key not in representative_witnesses: + representative_witnesses[character_key] = { + "port": port, + "character": first_mismatch["character"], + "moved_tokens": moved_tokens, + "differences": first_mismatch["differences"], + } + diff_bytes = json.dumps(first_mismatch["differences"], separators=(",", ":")).encode("ascii") if first_mismatch else b"[]" + summary = { + "port": port, + "status": result["status"], + "primary_status": result.get("primary_status"), + "wall_seconds": result["wall_seconds"], + "conflict_constraints": result["conflict_constraints"], + "baseline_rank_vector": result.get("baseline_rank_vector"), + "rank_vector": result.get("rank_vector"), + "rank_moment_surrogate": result.get("rank_moment_surrogate"), + "moves": result.get("moves"), + "assignment_sha256": assignment_digest, + "screen": { + "candidate_character_set_size": screen["candidate_character_set_size"], + "characters_tested_before_first_mismatch": screen["characters_tested_before_first_mismatch"], + "first_mismatch_character": first_mismatch["character"] if first_mismatch else None, + "matrix_difference_count": len(first_mismatch["differences"]) if first_mismatch else 0, + "matrix_difference_sha256": hashlib.sha256(diff_bytes).hexdigest(), + } if screen else None, + } + summaries.append(summary) + p = 1.0 - SAVING + baseline_moment = 4 * (48 ** p) + optimum_moment = 3 * (51 ** p) + (39 ** p) + aggregate = { + "base_main": v.BASE_MAIN, + "fill_payload_sha256": v.FILL_SHA256, + "solver_environment": {"ortools": ortools.__version__, "python": sys.version.split()[0]}, + "model": { + "children": list(CHILDREN), + "tokens_per_port": 192, + "rank_cap": MAX_CHILD_RANK, + "objective": "minimize sum(rank ** (1 - saving))", + "saving_scale": SAVING, + "objective_scale": SCALE, + "lexicographic_tiebreak": "minimum number of moved residual-axis tokens", + "time_limit_seconds_per_stage": TIME_LIMIT, + "threads": 1, + "seed": 0, + }, + "scope": "one CP-SAT optimum with minimum move count per port; exact replay screens the listed Fourier characters and stops at the first mismatch", + "ports": len(summaries), + "all_models_optimal": all(row["status"] == "OPTIMAL" for row in summaries), + "rank_imbalances_found": sum(row["status"] in ("OPTIMAL", "FEASIBLE") for row in summaries), + "screen_survivors": [row["port"] for row in summaries if row.get("screen") is None or row["screen"]["first_mismatch_character"] is None], + "rank_moment_comparison_per_port": { + "baseline_profile": [48, 48, 48, 48], + "candidate_profile": [51, 51, 51, 39], + "baseline_unscaled_moment": baseline_moment, + "candidate_unscaled_moment": optimum_moment, + "candidate_minus_baseline": optimum_moment - baseline_moment, + "relative_change": optimum_moment / baseline_moment - 1.0, + "note": "ranking surrogate only; the source-bound physical operator rejects every nominated assignment, so this is not a κ improvement", + }, + "representative_witnesses_by_character": [representative_witnesses[key] for key in sorted(representative_witnesses, key=int)], + "results": summaries, + } + print(json.dumps(aggregate, indent=2, sort_keys=True)) + + +if __name__ == "__main__": + main() diff --git a/research/idle-star-paired-axis-census/verify.py b/research/idle-star-paired-axis-census/verify.py index d6c4ade44f..9e26092c4e 100644 --- a/research/idle-star-paired-axis-census/verify.py +++ b/research/idle-star-paired-axis-census/verify.py @@ -308,6 +308,45 @@ def check_baseline(context, residual, blocks): return len(modes) +def check_single_transfers(context, blocks, children): + baseline = context["residual"] + eligible = failures = 0 + witness = None + for donor in children: + for receiver in children: + if donor == receiver: + continue + for axis in sorted(set(baseline[donor])): + if any(parity(axis, v) for v in context["full_axes"][receiver]): + continue + if len(baseline[receiver]) + 1 > 51: + continue + trial = {child: list(values) for child, values in baseline.items()} + trial[donor].remove(axis) + trial[receiver].append(axis) + if any( + not orthonormal(context["hosted_axes"].get(child, []) + trial[child]) + for child in (donor, receiver) + ): + continue + eligible += 1 + original = replay(context, baseline, axis, blocks) + altered = replay(context, trial, axis, blocks) + differences = matrix_differences(original, altered) + if differences: + failures += 1 + if witness is None: + witness = { + "donor": donor, + "receiver": receiver, + "axis": axis, + "baseline": original, + "overlay": altered, + "differences": differences, + } + return eligible, failures, witness + + def check_candidate_pair(context, blocks, source_children, target_children): # Each selected axis is an orthogonal source-basis vector and is orthogonal # to every original destination axis, including the destination's hosted slice. @@ -397,8 +436,10 @@ def run(): require(len(recipes) == 112, "port recipe count") blocks = stage_blocks(template) + single_count = single_failures = 0 forward_count = reverse_count = forward_failures = reverse_failures = 0 per_port = [] + first_single_witness = None first_forward_witness = None baseline_modes = None for port in range(112): @@ -410,6 +451,13 @@ def run(): replay(context, context["residual"], 0, blocks) == identity(), "zero-character baseline identity control", ) + single, single_bad, single_witness = check_single_transfers( + context, blocks, (8, 10, 12, 13) + ) + single_count += single + single_failures += single_bad + if port == 0: + first_single_witness = single_witness f, ff, fw = check_candidate_pair( context, blocks, (8, 10), (12, 13) ) @@ -420,22 +468,27 @@ def run(): reverse_count += r forward_failures += ff reverse_failures += rf - per_port.append([port, f, ff, r, rf]) + per_port.append([port, single, single_bad, f, ff, r, rf]) if port == 0: first_forward_witness = fw require(check_mutations(base, journal), "mutated journal preimage accepted") require(baseline_modes == 147, "baseline positive-control mode count") - require(forward_count == forward_failures and reverse_count == reverse_failures, "unrejected eligible transfer") + require(single_count == single_failures, "unrejected eligible single transfer") + require(single_count == 21504 and all(row[1] == row[2] == 192 for row in per_port), "single transfer census") + require(forward_count == forward_failures and reverse_count == reverse_failures, "unrejected eligible paired transfer") require(forward_count == reverse_count == 2688, "paired transfer count") - require(all(row[1] == row[2] == row[3] == row[4] == 24 for row in per_port), "per-port paired census") + require(all(row[3] == row[4] == row[5] == row[6] == 24 for row in per_port), "per-port paired census") + require(first_single_witness is not None, "exact single-transfer witness") require(first_forward_witness is not None and first_forward_witness["axis"] == 7, "exact forward witness") return { - "status": "PASS_NO_OPERATOR_PRESERVING_RANK_CHANGING_PAIRED_TRANSFER", + "status": "PASS_NO_OPERATOR_PRESERVING_SINGLE_OR_PAIRED_RANK_TRANSFER", "base_main": BASE_MAIN, "fill_payload_sha256": FILL_SHA256, "authenticated_fill_rows": TOTAL_ROWS, "ports": 112, "baseline_modes_port0": baseline_modes, + "single_transfer": {"eligible": single_count, "fail_at_own_axis_character": single_failures}, + "port0_single_witness": first_single_witness, "forward": {"eligible": forward_count, "fail_at_own_axis_character": forward_failures}, "reverse": {"eligible": reverse_count, "fail_at_own_axis_character": reverse_failures}, "port0_forward_witness": first_forward_witness, @@ -458,8 +511,9 @@ def main(): require(result == expected, "stored result differs") print( result["status"] - + f" ports={result['ports']} forward={result['forward']['eligible']}" - + f" reverse={result['reverse']['eligible']} baseline_modes={result['baseline_modes_port0']}" + + f" ports={result['ports']} single={result['single_transfer']['eligible']}" + + f" paired={result['forward']['eligible']}/{result['reverse']['eligible']}" + + f" baseline_modes={result['baseline_modes_port0']}" + " no_new_kappa" ) From ba34486f40f558fe3ac57bdb1ec263daeaa3fb5b Mon Sep 17 00:00:00 2001 From: Gonzalo-Mier Date: Sat, 17 Oct 2026 19:10:36 +0200 Subject: [PATCH 2/4] Replay PR3184 star and prove scoped axis isolation --- .../idle-star-paired-axis-census/README.md | 12 +- .../idle-star-paired-axis-census/RESULT.json | 940 +++++++++++++++++- .../idle-star-paired-axis-census/SOURCES.json | 14 +- .../idle-star-paired-axis-census/TASK.json | 18 +- .../idle-star-paired-axis-census/VERIFY.json | 2 +- .../vendor/PR3184-STAR-MOVES.json.gz | Bin 0 -> 394267 bytes .../idle-star-paired-axis-census/verify.py | 118 ++- 7 files changed, 1083 insertions(+), 21 deletions(-) create mode 100644 research/idle-star-paired-axis-census/vendor/PR3184-STAR-MOVES.json.gz diff --git a/research/idle-star-paired-axis-census/README.md b/research/idle-star-paired-axis-census/README.md index 85436630e0..fcb9844ee0 100644 --- a/research/idle-star-paired-axis-census/README.md +++ b/research/idle-star-paired-axis-census/README.md @@ -1,6 +1,6 @@ # T740 idle-axis reassignment: exact transfer census and CP-SAT screen -**Scoped negative result; no new κ or admitted supplier.** PR #3184 claims a conditional κ of `0.001730189061233850760095…` from redistributing idle rank-48 axes. PR #3187 gives an exact physical-operator counterexample to its first committed one-stream move. This package checks two ways to repair that failure: move one axis between the four rank-48 children, or move the same residual axis on both channels of one child pair so its phase is scalar. +**Scoped negative result; no new κ or admitted supplier.** PR #3184 claims a conditional κ of `0.001730189061233850760095…` from redistributing idle rank-48 axes. PR #3187 gives an exact physical-operator counterexample to its first committed star move. This package extends that check to every eligible one-axis transfer and paired transfer on the four rank-48 children, independently replays PR3184's actual replica-0/port-0 star, and tests a relaxed CP-SAT assignment optimum. ## Result @@ -16,6 +16,10 @@ For a concrete single-axis witness, port 0 moves axis 7 from child 8 to child 12 Within the paired-transfer family, eligible axes are pairwise orthogonal: each source residual basis is orthonormal, and forward candidates are orthogonal to the full reverse destination basis. At the character equal to any one selected axis, every other moved phase is inactive, so any simultaneous nonempty set of those paired transfers retains a one-transfer counterexample. +The same isolation argument covers every **same-centre star** among children 8, 10, 12 and 13 in the audited owner-replica-0 recipes. PR3184 chooses distinct moved axes from one orthonormal donor basis; each leaf must already be orthogonal to its incoming axes. At the character equal to any moved axis, all the other moved phases are inactive, so the star's operator equals that single-axis overlay. Since the exact census rejects every eligible single-axis overlay, no nonempty star in this class preserves the operator. + +We also replayed PR3184's pinned `replica=0, port=0` star from commit `6faefe1`: child 10 sends axes `[16,32,64]` to child 12 and `[128,256,4096]` to child 13, giving ranks `[48,42,51,51]` on children `(8,10,12,13)`. At character 16, the full star replay equals its isolated `10→12` single move and differs from baseline in three matrix entries. `RESULT.json` stores the full matrices. This independently reproduces the physical mismatch and explains why changing the other five axes in that star cannot repair it. + ## OR-Tools assignment search To test whether cycles could evade those one- and two-axis screens, `ortools_screen.py` models each port's 192 residual-axis tokens as an assignment to children 8, 10, 12 and 13. It preserves the token multiset, fixed hosted axes and pairwise GF(2) orthogonality, and caps each resulting child rank at 51. CP-SAT minimizes the local moment surrogate `Σ r^(1-a)` at `a = 0.00167546`, then minimizes the number of moved tokens. The exact eight-stream replay screens each port's minimum-move optimum at the 73 unit characters, the moved axes, their pairwise XORs and 72 adjacent-pair characters; it stops at the first mismatch. @@ -24,7 +28,7 @@ All 112 port models were optimal. Each found the same best rank profile `[51,51, To reproduce the optional artifact, use Python 3.10.12 with OR-Tools 9.11.4210 and run `python3.10 -B research/idle-star-paired-axis-census/ortools_screen.py > research/idle-star-paired-axis-census/ORTOOLS-RESULT.json`. The registered exact-replay package does not depend on OR-Tools. `ORTOOLS-RESULT.json` records the solver candidates and their first exact replay counterexamples. -The exact census does not cover arbitrary simultaneous single-axis moves whose moved vectors are not pairwise orthogonal, other child/time pairs, nonzero replicas, or all operator-preserving assignments. The CP-SAT result supplies a strongest rank-profile candidate for the stated four-child assignment model, but only one assignment at that profile is replayed per port. Neither experiment claims a general obstruction. The selected record and frontier are unchanged. +The exact census and star-isolation argument cover owner replica zero and the same-centre star class only; multi-donor cycles can combine nonorthogonal moved axes, and other child/time pairs and nonzero replicas remain open. The CP-SAT result supplies the best rank-profile candidate for its stated four-child assignment relaxation, but only one minimum-move assignment at that profile is replayed per port. Neither experiment claims a general obstruction. The selected record and frontier are unchanged. ## Reproduce @@ -35,11 +39,11 @@ python3 scripts/research_package.py --package research/idle-star-paired-axis-cen python3.12 scripts/research_package.py --package research/idle-star-paired-axis-census ``` -The verifier independently implements the exact eight-stream Gaussian-integer replay. Live main inputs are pinned in `SOURCES.json`; the retained fill, journal and provider table are checked against the SHA256 and Git-blob IDs recorded from PR3148. The original PR3133 notice and credits are retained under `vendor/`. +The verifier independently implements the exact eight-stream Gaussian-integer replay. Live main inputs are pinned in `SOURCES.json`; the retained fill, journal and provider table are checked against the SHA256 and Git-blob IDs recorded from PR3148. PR3184's complete star-move artifact is retained and pinned to its exact head for the added witness. The original PR3133 notice and credits are retained under `vendor/`. ## Open next questions -See the structured tasks in [TASK.json](TASK.json). The remaining question within this slice is whether a different assignment at `[51,51,51,39]` can preserve the complete operator; prioritize it only if the resulting four-child moment change can affect the full charged supplier profile. A different child/time pair needs its own insertion-to-insertion intertwiner and source-bound replay. +See the structured tasks in [TASK.json](TASK.json). The remaining question within this slice is whether a multi-donor cycle with nonorthogonal moved axes can preserve the complete operator; first charge its maximum possible profile change against the full supplier bill. A different child/time pair needs its own insertion-to-insertion intertwiner and source-bound replay. ## Credit diff --git a/research/idle-star-paired-axis-census/RESULT.json b/research/idle-star-paired-axis-census/RESULT.json index 7e6d6f0ac3..f1da7dd083 100644 --- a/research/idle-star-paired-axis-census/RESULT.json +++ b/research/idle-star-paired-axis-census/RESULT.json @@ -1643,6 +1643,937 @@ ] ] }, + "port0_pr3184_star_witness": { + "axes_pairwise_orthogonal": true, + "first_witness": { + "baseline": [ + [ + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ] + ] + ], + "character": 16, + "differences": [ + [ + 1, + 1, + [ + 0, + 1 + ], + [ + -1, + 0 + ] + ], + [ + 3, + 1, + [ + 0, + 0 + ], + [ + -1, + -1 + ] + ], + [ + 7, + 7, + [ + 0, + 1 + ], + [ + 1, + 0 + ] + ] + ], + "single_overlay": [ + [ + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + -1, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 1, + 0 + ] + ] + ], + "star_overlay": [ + [ + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + -1, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 0 + ] + ], + [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 1, + 0 + ] + ] + ] + }, + "isolated_axis_checks": [ + { + "axis": 16, + "differences": 3, + "receiver": 12 + }, + { + "axis": 32, + "differences": 3, + "receiver": 12 + }, + { + "axis": 64, + "differences": 3, + "receiver": 12 + }, + { + "axis": 128, + "differences": 3, + "receiver": 13 + }, + { + "axis": 256, + "differences": 3, + "receiver": 13 + }, + { + "axis": 4096, + "differences": 3, + "receiver": 13 + } + ], + "moves": [ + [ + 0, + 0, + 10, + 12, + [ + 16, + 32, + 64 + ] + ], + [ + 0, + 0, + 10, + 13, + [ + 128, + 256, + 4096 + ] + ] + ], + "moves_sha256": "ea833cc374c16c4bed4da6328a77353171944d947bed1d28085212ffad786e90", + "rank_vector": { + "10": 42, + "12": 51, + "13": 51, + "8": 48 + }, + "scope": "one exact owner-replica-0/port-0 star from PR3184; the complete single-transfer census extends the same isolation argument to every same-centre star over these four children on the audited 112 owner-0 port recipes", + "source_head": "6faefe19f592220c16722a6682c22c8fbccd4bb4" + }, "port0_single_witness": { "axis": 7, "baseline": [ @@ -2244,5 +3175,12 @@ "eligible": 21504, "fail_at_own_axis_character": 21504 }, - "status": "PASS_NO_OPERATOR_PRESERVING_SINGLE_OR_PAIRED_RANK_TRANSFER" + "star_isolation": { + "audited_ports": 112, + "conclusion": "any nonempty same-centre star from the orthonormal donor basis to these four children has an own-axis counterexample on the audited owner-replica-0 port recipes", + "eligible_single_moves": 21504, + "orthonormal_source_bases_per_port": true, + "single_moves_failing_at_own_axis": 21504 + }, + "status": "PASS_NO_OPERATOR_PRESERVING_SINGLE_PAIRED_OR_STAR_TRANSFER" } diff --git a/research/idle-star-paired-axis-census/SOURCES.json b/research/idle-star-paired-axis-census/SOURCES.json index b7c2f4b0be..bb1382d014 100644 --- a/research/idle-star-paired-axis-census/SOURCES.json +++ b/research/idle-star-paired-axis-census/SOURCES.json @@ -69,17 +69,27 @@ "upstream_path": "research/coupled-carrier-cap740/vendor/PR3133-PROVIDERS.json", "sha256": "52eb0d85caa7b2d4a93acdf5011f52b793f61ddca86235fb03cd9a09397ad4cd", "git_blob": "0b2343675099d0a9fe90da6e1f1e53f50235567e" + }, + { + "local_path": "vendor/PR3184-STAR-MOVES.json.gz", + "source_pr": 3184, + "head": "6faefe19f592220c16722a6682c22c8fbccd4bb4", + "upstream_path": "research/rank7-idle-star-exchanges-t740/STAR-MOVES.json.gz", + "sha256": "ea833cc374c16c4bed4da6328a77353171944d947bed1d28085212ffad786e90", + "git_blob": "ef209aa4a9c2c81d983ea58146a7cbd6770eda4c" } ], "context": { "pr3184_head": "ffab383a5f78eb1a4ad4c7c7259a4f32b86f9481", "pr3187_head": "85cc6be02f5f912ac203449e06523ad53e6054d2", - "note": "PR3187’s physical counterexample motivated this complementary census; the replay implementation in this package is independent.", + "note": "PR3187’s physical counterexample motivated this complementary census; the replay implementation in this package is independent. The PR3184 STAR-MOVES payload is retained from exact head 6faefe19f592220c16722a6682c22c8fbccd4bb4 for an independent exact replay of its replica-0/port-0 star.", "submission_refresh": { "canonical_main": "463113d675af7410ac91d53a4fed51ec6494eb9a", "priority_revision": 6, "selected_kappa": "0.001672660197076918", "note": "Refreshed before the PR update. Priority revision and selected result are unchanged; source files pinned above are unchanged. This checkpoint is context, not an input to verify.py." - } + }, + "pr3184_artifact_head": "6faefe19f592220c16722a6682c22c8fbccd4bb4", + "pr3184_star_moves_sha256": "ea833cc374c16c4bed4da6328a77353171944d947bed1d28085212ffad786e90" } } diff --git a/research/idle-star-paired-axis-census/TASK.json b/research/idle-star-paired-axis-census/TASK.json index ecea0331a8..e261f6a67b 100644 --- a/research/idle-star-paired-axis-census/TASK.json +++ b/research/idle-star-paired-axis-census/TASK.json @@ -46,21 +46,21 @@ ] }, "scope_status": "refined", - "actual_scope": "Independent exact replay of idle-axis redistribution on all 112 T740 port recipes for owner replica zero: test every eligible one-axis move among children (8,10,12,13); test the common-axis paired transfer from children (8,10) to (12,13) and its reverse; then use OR-Tools CP-SAT to optimize assignments of the 192 residual-axis tokens among those four children, preserving hosted-axis and pairwise orthogonality constraints with rank cap 51. Replay the minimum-move assignment attaining the best local rank-moment profile at its nominated Fourier characters.", - "scope_change_reason": "PR3187 gives an exact counterexample to PR3184’s first single-stream star move. After the single and paired census, the remaining matched-swap/longer-cycle question is naturally an assignment problem: an incoming vector may become feasible if a nonorthogonal destination vector leaves at the same time. OR-Tools is used only for candidate nomination and the local moment objective; the source-bound exact replay remains the physical acceptance test. The user explicitly favored OR-Tools for optimization.", - "bottleneck_link": "A better rank histogram changes the moment only if the exact hosted eight-stream physical operator is preserved. The CP-SAT screen finds the most uneven feasible four-child rank profile under the stated token, orthogonality and rank-cap model, then rejects its minimum-move representatives on all 112 ports. The local profile shift is not a new provider moment or κ.", + "actual_scope": "Independent exact replay of idle-axis redistribution on all 112 T740 port recipes for owner replica zero: test every eligible one-axis move among children (8,10,12,13); test common-axis paired transfers from (8,10) to (12,13) and in reverse; replay the source-pinned PR3184 replica-0/port-0 star; derive own-axis isolation for all same-centre stars in this four-child class; and use OR-Tools CP-SAT to optimize assignments of 192 residual-axis tokens under hosted-axis and pairwise-orthogonality constraints with rank cap 51.", + "scope_change_reason": "PR3187 gives an exact counterexample to PR3184’s first committed star move. After the single and paired census, the remaining matched-swap/longer-cycle question is naturally an assignment problem: an incoming vector may become feasible if a nonorthogonal destination vector leaves at the same time. OR-Tools is used only for candidate nomination and a local moment objective; exact replay remains the physical acceptance test. The all-single census also yields a scoped isolation proof for same-centre stars, and an independently implemented replay checks the actual pinned PR3184 replica-0/port-0 move. The user explicitly favored OR-Tools for optimization.", + "bottleneck_link": "A better rank histogram changes the moment only if the exact hosted eight-stream physical operator is preserved. Every eligible one-axis transfer fails, which isolates any nonempty same-centre star built from an orthonormal donor basis in the audited owner-0 slice. CP-SAT additionally finds the most uneven profile in a relaxed four-child assignment model; neither result is a new provider moment or κ.", "budget_minutes": 60, - "stop_rule": "Authenticate the complete T740 fill and all 112 recipes; verify positive baseline controls; enumerate eligible single-axis and paired transfers; for each port solve the residual-axis assignment model to optimality for the local moment surrogate and minimum move count, then exact-replay the nominated candidate on the recorded character set. Stop this bounded screen at the first mismatch for each candidate. Do not claim all assignments at the optimal rank profile fail, and do not generalize to other child pairs, replicas, or all operator-preserving assignments.", + "stop_rule": "Authenticate the complete T740 fill, PR3184 star artifact and all 112 recipes; verify positive baseline controls; enumerate eligible single-axis and paired transfers; replay PR3184’s actual replica-0/port-0 star at each moved axis; use the complete single-axis census to isolate the same-centre star family; for each port solve the residual-axis assignment model to optimality for the local moment surrogate and minimum move count, then replay the nominated candidate on the recorded character set. Do not claim all assignments at the optimal rank profile or multi-donor cycles fail, and do not generalize to other child pairs or replicas.", "outcome": "completed", - "evidence": "verify.py authenticates the PR3148 T740 payload SHA256 8f4d6965…e00, checks the baseline on 147 modes for port 0 plus the zero-character identity for all ports, and tests 21,504 single-axis candidates (192 per port), 2,688 forward paired candidates, and 2,688 reverse paired candidates across all 112 port recipes for owner replica zero. Every candidate changes the exact Gaussian-integer stream matrix at its own Fourier character; the paired candidates are pairwise isolated and any simultaneous nonempty subset of that restricted class retains a counterexample. Separately, optional CP-SAT 9.11.4210 runs 112 rank-assignment models to optimality. Each finds profile [51,51,51,39] from [48,48,48,48] with 12 moved tokens; the first tested exact mismatch is at character 1, 2 or 32 on every port. This is one minimum-move representative per port, not an exhaustive search of assignments at that profile. No new κ, supplier admission, or selected-frontier change.", + "evidence": "verify.py authenticates the PR3148 T740 payload SHA256 8f4d6965…e00 and the complete PR3184 STAR-MOVES payload from head 6faefe19f592220c16722a6682c22c8fbccd4bb4. It checks the baseline on 147 modes for port 0 plus the zero-character identity for all ports; all 21,504 eligible single-axis candidates and 5,376 paired candidates change the exact Gaussian-integer stream matrix at their own Fourier character. The moved axes in a same-centre star are a subset of one orthonormal donor basis, so any nonempty such star is isolated by one rejected single move on each audited owner-0 recipe. The actual PR3184 replica-0/port-0 star sends [16,32,64] from child 10 to 12 and [128,256,4096] from 10 to 13; at character 16 its full overlay equals the isolated single move and differs from baseline in three matrix entries. Optional CP-SAT 9.11.4210 solves 112 relaxed rank-assignment models to optimality, each finding [51,51,51,39] from [48,48,48,48] with 12 moves; one minimum-move representative per port fails at character 1, 2 or 32. No new κ, supplier admission, or selected-frontier change.", "author": "OpenAI Codex", "ai_assistance": "OpenAI Codex wrote the independent exact replay, source-bound census, optional OR-Tools CP-SAT search and package. OR-Tools discovery used Python 3.10.12 / OR-Tools 9.11.4210. No independent human review or proof-assistant verification is claimed.", "open_questions": [ { - "question": "Can a different assignment with the same locally optimal profile [51,51,51,39] preserve the full operator?", - "why_it_matters": "The minimum-move representative on each port fails, but the CP-SAT model leaves many assignments at that profile. A physically valid one would establish whether this structural rank gain can affect the provider moment.", - "first_step": "Before enumerating alternatives, charge the maximum local moment change against the complete provider profile. If it can change the decision, add CP-SAT no-good cuts for screened assignments and replay candidates over the complete character quotient or prove a compact exact criterion.", - "blocked_by": "The current receipt does not enumerate the remaining assignments or prove full-character operator equivalence; their possible κ effect has not been charged through the complete supplier invoice." + "question": "Can a multi-donor cycle with nonorthogonal moved axes preserve the full operator and retain enough fully charged moment improvement?", + "why_it_matters": "Same-centre stars are isolated by an active moved-axis character, but exchanging axes among multiple donors can couple nonorthogonal phases and evade that argument.", + "first_step": "First derive the maximum complete-provider moment improvement allowed by the four-child assignment relaxation. If it can change the decision, add CP-SAT no-good cuts for screened assignments and replay candidates over a complete character quotient or prove a compact exact criterion.", + "blocked_by": "The current receipt tests one minimum-move representative per port, not all relaxed assignments; it also does not model the full operator in CP-SAT or charge a surviving overlay through the complete supplier invoice." }, { "question": "Does any other child/time pair on the T740 schedule admit a physically valid rank-changing transfer?", diff --git a/research/idle-star-paired-axis-census/VERIFY.json b/research/idle-star-paired-axis-census/VERIFY.json index 9c3f103dcc..2a9782f2de 100644 --- a/research/idle-star-paired-axis-census/VERIFY.json +++ b/research/idle-star-paired-axis-census/VERIFY.json @@ -19,7 +19,7 @@ "{package}/verify.py" ], "timeout_seconds": 120, - "checks": "Exact source and retained-allocation pins; complete T740 fill authentication; baseline 147-mode control; 21,504 single-axis and 5,376 paired rank-changing transfer checks across 112 recipes; own-axis-character operator comparisons; exact witnesses; journal-mutation rejection; stored RESULT.json receipt." + "checks": "Exact source and retained-allocation pins including PR3184 STAR-MOVES; complete T740 fill authentication; baseline 147-mode control; 21,504 single-axis and 5,376 paired transfer checks across 112 recipes; exact replica-0/port-0 PR3184 star replay at all six moved-axis characters; same-centre star-isolation argument; journal-mutation rejection; stored RESULT.json receipt." } ] } diff --git a/research/idle-star-paired-axis-census/vendor/PR3184-STAR-MOVES.json.gz b/research/idle-star-paired-axis-census/vendor/PR3184-STAR-MOVES.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..ef209aa4a9c2c81d983ea58146a7cbd6770eda4c GIT binary patch literal 394267 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

#Sd_IJhHl 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%0AT_} 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 T>k^cA^&612UH7+n#(n-DqYsb` literal 0 HcmV?d00001 diff --git a/research/idle-star-paired-axis-census/verify.py b/research/idle-star-paired-axis-census/verify.py index 9e26092c4e..2473166bae 100644 --- a/research/idle-star-paired-axis-census/verify.py +++ b/research/idle-star-paired-axis-census/verify.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Source-bound census of paired rank-changing idle-axis transfers.""" +"""Source-bound idle-axis transfer census and exact star-overlay screen.""" from __future__ import annotations @@ -15,6 +15,9 @@ ROOT = PACKAGE.parents[1] BASE_MAIN = "997e6a9ca7b4f95d50e366f61412fd640d72a88a" FILL_SHA256 = "8f4d6965ba573ff2b71fd7bf6b552643e086739d90bd73c55889502077638e00" +PR3184_HEAD = "6faefe19f592220c16722a6682c22c8fbccd4bb4" +PR3184_STAR_SHA256 = "ea833cc374c16c4bed4da6328a77353171944d947bed1d28085212ffad786e90" +PR3184_STAR_BLOB = "ef209aa4a9c2c81d983ea58146a7cbd6770eda4c" BASE_ROWS = 9 * 74 * 408 TOTAL_ROWS = 10 * BASE_ROWS MAX_RAW = 32_000_000 @@ -34,6 +37,10 @@ "52eb0d85caa7b2d4a93acdf5011f52b793f61ddca86235fb03cd9a09397ad4cd", "0b2343675099d0a9fe90da6e1f1e53f50235567e", ), + "PR3184-STAR-MOVES.json.gz": ( + PR3184_STAR_SHA256, + PR3184_STAR_BLOB, + ), } NOTICE_PINS = { "PR3133-NOTICE": "c9731c9cca25ede32c2a1b3aef6d5b249973cb2ed5fb2494407bdca598763661", @@ -71,6 +78,9 @@ def blob_sha(raw: bytes) -> str: def authenticate() -> None: sources = json.loads(read_bytes(PACKAGE / "SOURCES.json")) require(sources["base_commit"] == BASE_MAIN, "unexpected base main") + context = sources.get("context", {}) + require(context.get("pr3184_artifact_head") == PR3184_HEAD, "PR3184 artifact head") + require(context.get("pr3184_star_moves_sha256") == PR3184_STAR_SHA256, "PR3184 star-moves source pin") retained = {row["local_path"]: row for row in sources.get("retained_sources", [])} for name, (sha, blob) in VENDOR_PINS.items(): row = retained.get("vendor/" + name) @@ -82,8 +92,8 @@ def authenticate() -> None: require(blob_sha(path) == row["git_blob"], "main source Git blob") for name, (sha, blob) in VENDOR_PINS.items(): raw = read_bytes(PACKAGE / "vendor" / name) - require(hashlib.sha256(raw).hexdigest() == sha, "retained PR3148 SHA256: " + name) - require(blob_sha(raw) == blob, "retained PR3148 Git blob: " + name) + require(hashlib.sha256(raw).hexdigest() == sha, "retained source SHA256: " + name) + require(blob_sha(raw) == blob, "retained source Git blob: " + name) for name, sha in NOTICE_PINS.items(): raw = read_bytes(PACKAGE / "vendor" / name) require(hashlib.sha256(raw).hexdigest() == sha, "retained notice SHA256: " + name) @@ -407,6 +417,90 @@ def check_candidate_pair(context, blocks, source_children, target_children): return len(eligible), failures, witness +def check_pr3184_star(context, blocks, star_document): + # The pinned PR3184 move file contains two disjoint three-axis leaves for + # replica 0 / port 0, both from the same untouched rank-48 centre. + require( + star_document.get("columns") == ["replica", "port", "centre_child", "leaf_child", "moved_axes"], + "PR3184 star-move columns", + ) + require(len(star_document.get("moves", [])) == 125706, "PR3184 star-move count") + moves = [row for row in star_document["moves"] if row[0] == 0 and row[1] == 0] + require( + moves == [ + [0, 0, 10, 12, [16, 32, 64]], + [0, 0, 10, 13, [128, 256, 4096]], + ], + "PR3184 replica-0/port-0 star source binding", + ) + + baseline = context["residual"] + require(all(not context["hosted_axes"].get(child, []) for child in (10, 12, 13)), "PR3184 witness children are untouched") + require(all(baseline[child] == context["full_axes"][child] for child in (10, 12, 13)), "PR3184 idle bases retained") + for child in (10, 12, 13): + require(orthonormal(context["full_axes"][child]), "PR3184 source/leaf axes are orthonormal") + + trial = {child: list(values) for child, values in baseline.items()} + moved = [] + recipe = context["recipe"] + ys = [int(stage[key]) for stage in recipe["stage_alignment"] for key in ("entry_Y", "exit_Y")] + ys.append(int(recipe["terminal_Y_translation"])) + xs = [int(stage[key]) for stage in recipe["stage_alignment"] for key in ("entry_X", "exit_X")] + for _, _, donor, receiver, axes in moves: + require(donor == 10 and receiver in (12, 13) and len(axes) == 3, "PR3184 star geometry") + translations = [ + int(recipe["idle_children"][donor]["translation_after"]), + int(recipe["idle_children"][receiver]["translation_after"]), + ] + for axis in axes: + require(axis in baseline[donor], "PR3184 moved axis belongs to donor") + require( + all(not parity(axis, vector) for vector in context["full_axes"][receiver] + ys + xs + translations), + "PR3184 moved axis satisfies the declared commuting rule", + ) + trial[donor].remove(axis) + trial[receiver].append(axis) + moved.append((donor, receiver, axis)) + + moved_axes = [axis for _, _, axis in moved] + require(len(moved_axes) == len(set(moved_axes)) == 6, "PR3184 star axes are distinct") + require(all(not parity(a, b) for i, a in enumerate(moved_axes) for b in moved_axes[i + 1 :]), "PR3184 star phases are pairwise orthogonal") + require({child: len(trial[child]) for child in (8, 10, 12, 13)} == {8: 48, 10: 42, 12: 51, 13: 51}, "PR3184 star rank profile") + + isolated = [] + first_witness = None + for donor, receiver, axis in moved: + single = {child: list(values) for child, values in baseline.items()} + single[donor].remove(axis) + single[receiver].append(axis) + baseline_matrix = replay(context, baseline, axis, blocks) + single_matrix = replay(context, single, axis, blocks) + star_matrix = replay(context, trial, axis, blocks) + differences = matrix_differences(baseline_matrix, star_matrix) + require(single_matrix != baseline_matrix, "every selected PR3184 star axis has a failing single-transfer control") + require(star_matrix == single_matrix, "orthogonal star overlay reduces exactly to its active single move") + require(differences, "PR3184 star changes the exact operator at an active axis") + isolated.append({"axis": axis, "receiver": receiver, "differences": len(differences)}) + if first_witness is None: + first_witness = { + "character": axis, + "baseline": baseline_matrix, + "single_overlay": single_matrix, + "star_overlay": star_matrix, + "differences": differences, + } + return { + "source_head": PR3184_HEAD, + "moves_sha256": PR3184_STAR_SHA256, + "moves": moves, + "rank_vector": {str(child): len(trial[child]) for child in (8, 10, 12, 13)}, + "axes_pairwise_orthogonal": True, + "isolated_axis_checks": isolated, + "first_witness": first_witness, + "scope": "one exact owner-replica-0/port-0 star from PR3184; the complete single-transfer census extends the same isolation argument to every same-centre star over these four children on the audited 112 owner-0 port recipes", + } + + def check_mutations(base, journal): altered = json.loads(json.dumps(journal)) altered["edits"][0][1][0] ^= 1 @@ -422,6 +516,7 @@ def run(): vendor = PACKAGE / "vendor" base = decode(read_bytes(vendor / "BASE-FILL.json.gz"))["rows"] journal = decode(read_bytes(vendor / "EXCHANGE.json")) + pr3184_star = decode(read_bytes(vendor / "PR3184-STAR-MOVES.json.gz")) rows_by_port = project_all_ports(base, journal_edits(base, journal)) order_base = decode(read_bytes(ROOT / "research/rank7-joint-endframes/allocation/ORDER.json")) require(len(order_base) == 666, "base chronology count") @@ -441,12 +536,18 @@ def run(): per_port = [] first_single_witness = None first_forward_witness = None + star_witness = None baseline_modes = None for port in range(112): context = prepare_port(port, rows_by_port[port], order, dispatch, providers, plan, template, recipes) context["residual"] = context.pop("residual") + require( + all(orthonormal(context["full_axes"][child]) for child in (8, 10, 12, 13)), + "four idle-child source bases are orthonormal", + ) if port == 0: baseline_modes = check_baseline(context, context["residual"], blocks) + star_witness = check_pr3184_star(context, blocks, pr3184_star) require( replay(context, context["residual"], 0, blocks) == identity(), "zero-character baseline identity control", @@ -480,8 +581,9 @@ def run(): require(all(row[3] == row[4] == row[5] == row[6] == 24 for row in per_port), "per-port paired census") require(first_single_witness is not None, "exact single-transfer witness") require(first_forward_witness is not None and first_forward_witness["axis"] == 7, "exact forward witness") + require(star_witness is not None and len(star_witness["isolated_axis_checks"]) == 6, "exact PR3184 star witness") return { - "status": "PASS_NO_OPERATOR_PRESERVING_SINGLE_OR_PAIRED_RANK_TRANSFER", + "status": "PASS_NO_OPERATOR_PRESERVING_SINGLE_PAIRED_OR_STAR_TRANSFER", "base_main": BASE_MAIN, "fill_payload_sha256": FILL_SHA256, "authenticated_fill_rows": TOTAL_ROWS, @@ -492,6 +594,14 @@ def run(): "forward": {"eligible": forward_count, "fail_at_own_axis_character": forward_failures}, "reverse": {"eligible": reverse_count, "fail_at_own_axis_character": reverse_failures}, "port0_forward_witness": first_forward_witness, + "port0_pr3184_star_witness": star_witness, + "star_isolation": { + "audited_ports": 112, + "orthonormal_source_bases_per_port": True, + "eligible_single_moves": single_count, + "single_moves_failing_at_own_axis": single_failures, + "conclusion": "any nonempty same-centre star from the orthonormal donor basis to these four children has an own-axis counterexample on the audited owner-replica-0 port recipes", + }, "per_port_counts": per_port, "selected_frontier_changed": False, "new_kappa": None, From ec55de600693e6acec7094d2eadb9541f62bf321 Mon Sep 17 00:00:00 2001 From: Gonzalo-Mier Date: Sat, 17 Oct 2026 20:17:37 +0200 Subject: [PATCH 3/4] Screen exact operator equality with OR-Tools --- .../OPERATOR-ORTOOLS-RESULT.json | 1258 +++++++++++++++++ .../idle-star-paired-axis-census/README.md | 18 +- .../idle-star-paired-axis-census/SOURCES.json | 2 +- .../idle-star-paired-axis-census/TASK.json | 27 +- .../operator_ortools_screen.py | 230 +++ 5 files changed, 1515 insertions(+), 20 deletions(-) create mode 100644 research/idle-star-paired-axis-census/OPERATOR-ORTOOLS-RESULT.json create mode 100644 research/idle-star-paired-axis-census/operator_ortools_screen.py diff --git a/research/idle-star-paired-axis-census/OPERATOR-ORTOOLS-RESULT.json b/research/idle-star-paired-axis-census/OPERATOR-ORTOOLS-RESULT.json new file mode 100644 index 0000000000..42f71b8aa2 --- /dev/null +++ b/research/idle-star-paired-axis-census/OPERATOR-ORTOOLS-RESULT.json @@ -0,0 +1,1258 @@ +{ + "base_main": "997e6a9ca7b4f95d50e366f61412fd640d72a88a", + "elapsed_seconds": 2820.279, + "fill_payload_sha256": "8f4d6965ba573ff2b71fd7bf6b552643e086739d90bd73c55889502077638e00", + "model": { + "coordinate_characters_per_port": 73, + "phase_delta_domain_per_character": 256, + "rank_change_constraint": "max(child ranks) >= 49", + "seed": 0, + "threads": 1, + "time_limit_seconds_per_port": 30.0, + "tokens_per_port": 192 + }, + "new_kappa": null, + "ortools_version": "9.11.4210", + "ports": [ + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 0, + "solver_seconds": 0.015726, + "solver_status": "INFEASIBLE", + "wall_seconds": 23.616 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 1, + "solver_seconds": 0.015102, + "solver_status": "INFEASIBLE", + "wall_seconds": 23.994 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 2, + "solver_seconds": 0.015625, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.061 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 3, + "solver_seconds": 0.015039, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.172 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 4, + "solver_seconds": 0.015593, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.49 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 5, + "solver_seconds": 0.015055, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.627 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 6, + "solver_seconds": 0.015607, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.497 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 7, + "solver_seconds": 0.015281, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.614 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 8, + "solver_seconds": 0.015996, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.861 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 9, + "solver_seconds": 0.015338, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.802 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 10, + "solver_seconds": 0.015372, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.179 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 11, + "solver_seconds": 0.016037, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.653 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 12, + "solver_seconds": 0.015348, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.59 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 13, + "solver_seconds": 0.016309, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.615 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 14, + "solver_seconds": 0.015595, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.705 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 15, + "solver_seconds": 0.01592, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.859 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 16, + "solver_seconds": 0.015515, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.868 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 17, + "solver_seconds": 0.015932, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.724 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 18, + "solver_seconds": 0.015764, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.207 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 19, + "solver_seconds": 0.015753, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.647 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 20, + "solver_seconds": 0.016496, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.249 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 21, + "solver_seconds": 0.015818, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.97 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 22, + "solver_seconds": 0.016309, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.5 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 23, + "solver_seconds": 0.015797, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.434 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 24, + "solver_seconds": 0.018842, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.118 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 25, + "solver_seconds": 0.015764, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.086 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 26, + "solver_seconds": 0.016227, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.947 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 27, + "solver_seconds": 0.015857, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.007 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 28, + "solver_seconds": 0.015784, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.131 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 29, + "solver_seconds": 0.016157, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.932 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 30, + "solver_seconds": 0.015796, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.89 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 31, + "solver_seconds": 0.016174, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.065 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 32, + "solver_seconds": 0.015517, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.1 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 33, + "solver_seconds": 0.015911, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.413 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 34, + "solver_seconds": 0.015537, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.5 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 35, + "solver_seconds": 0.015877, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.37 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 36, + "solver_seconds": 0.015799, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.505 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 37, + "solver_seconds": 0.016358, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.602 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 38, + "solver_seconds": 0.016114, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.784 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 39, + "solver_seconds": 0.016509, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.861 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 40, + "solver_seconds": 0.015906, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.703 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 41, + "solver_seconds": 0.015548, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.908 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 42, + "solver_seconds": 0.015993, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.524 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 43, + "solver_seconds": 0.015424, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.703 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 44, + "solver_seconds": 0.016416, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.076 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 45, + "solver_seconds": 0.016049, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.666 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 46, + "solver_seconds": 0.015873, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.176 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 47, + "solver_seconds": 0.016263, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.243 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 48, + "solver_seconds": 0.015931, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.048 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 49, + "solver_seconds": 0.016322, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.169 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 50, + "solver_seconds": 0.015856, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.387 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 51, + "solver_seconds": 0.016285, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.232 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 52, + "solver_seconds": 0.0159, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.342 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 53, + "solver_seconds": 0.016128, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.315 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 54, + "solver_seconds": 0.015811, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.199 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 55, + "solver_seconds": 0.015729, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.249 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 56, + "solver_seconds": 0.017182, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.193 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 57, + "solver_seconds": 0.016138, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.149 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 58, + "solver_seconds": 0.016278, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.259 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 59, + "solver_seconds": 0.015862, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.36 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 60, + "solver_seconds": 0.016446, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.279 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 61, + "solver_seconds": 0.015745, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.315 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 62, + "solver_seconds": 0.016395, + "solver_status": "INFEASIBLE", + "wall_seconds": 26.074 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 63, + "solver_seconds": 0.015883, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.831 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 64, + "solver_seconds": 0.015688, + "solver_status": "INFEASIBLE", + "wall_seconds": 26.277 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 65, + "solver_seconds": 0.01639, + "solver_status": "INFEASIBLE", + "wall_seconds": 26.651 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 66, + "solver_seconds": 0.015818, + "solver_status": "INFEASIBLE", + "wall_seconds": 26.275 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 67, + "solver_seconds": 0.016194, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.863 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 68, + "solver_seconds": 0.015968, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.415 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 69, + "solver_seconds": 0.01613, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.21 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 70, + "solver_seconds": 0.015879, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.543 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 71, + "solver_seconds": 0.016287, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.031 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 72, + "solver_seconds": 0.015897, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.306 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 73, + "solver_seconds": 0.017378, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.567 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 74, + "solver_seconds": 0.016355, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.206 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 75, + "solver_seconds": 0.016643, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.203 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 76, + "solver_seconds": 0.016287, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.292 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 77, + "solver_seconds": 0.017812, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.03 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 78, + "solver_seconds": 0.018235, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.322 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 79, + "solver_seconds": 0.018032, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.454 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 80, + "solver_seconds": 0.01847, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.448 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 81, + "solver_seconds": 0.01788, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.993 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 82, + "solver_seconds": 0.01792, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.373 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 83, + "solver_seconds": 0.018125, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.264 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 84, + "solver_seconds": 0.017439, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.913 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 85, + "solver_seconds": 0.018003, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.742 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 86, + "solver_seconds": 0.01739, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.008 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 87, + "solver_seconds": 0.018136, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.857 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 88, + "solver_seconds": 0.018149, + "solver_status": "INFEASIBLE", + "wall_seconds": 24.839 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 89, + "solver_seconds": 0.017904, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.08 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 90, + "solver_seconds": 0.017961, + "solver_status": "INFEASIBLE", + "wall_seconds": 26.318 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 91, + "solver_seconds": 0.017888, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.702 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 92, + "solver_seconds": 0.018331, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.807 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 93, + "solver_seconds": 0.017907, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.685 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 94, + "solver_seconds": 0.01876, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.908 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 95, + "solver_seconds": 0.018137, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.853 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 96, + "solver_seconds": 0.018451, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.62 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 97, + "solver_seconds": 0.018229, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.692 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 98, + "solver_seconds": 0.018825, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.835 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 99, + "solver_seconds": 0.018102, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.794 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 100, + "solver_seconds": 0.018001, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.427 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 101, + "solver_seconds": 0.018324, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.76 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 102, + "solver_seconds": 0.018145, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.705 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 103, + "solver_seconds": 0.018321, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.322 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 104, + "solver_seconds": 0.018395, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.124 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 105, + "solver_seconds": 0.018739, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.928 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 106, + "solver_seconds": 0.017467, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.474 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 107, + "solver_seconds": 0.01848, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.217 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 108, + "solver_seconds": 0.018173, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.439 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 109, + "solver_seconds": 0.017688, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.018 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 110, + "solver_seconds": 0.019319, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.166 + }, + { + "accepted_phase_tuple_counts": { + "1": 73 + }, + "coordinate_characters": 73, + "phase_table_sha256": "ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83", + "port": 111, + "solver_seconds": 0.017784, + "solver_status": "INFEASIBLE", + "wall_seconds": 25.669 + } + ], + "python": "3.10.12", + "scope": "owner-replica-zero; four residual rank-48 children (8,10,12,13); exact equality at all 73 coordinate Fourier characters; arbitrary token assignment, fixed hosted axes, orthonormal final bases, rank cap 51; per-axis translation and other physical gates omitted, so this is a super-relaxation", + "selected_frontier_changed": false, + "solver": "OR-Tools CP-SAT", + "status": "PASS_NO_RANK_CHANGING_ASSIGNMENT_AT_73_COORDINATE_CHARACTERS", + "status_counts": { + "INFEASIBLE": 112 + } +} diff --git a/research/idle-star-paired-axis-census/README.md b/research/idle-star-paired-axis-census/README.md index fcb9844ee0..40f43cf298 100644 --- a/research/idle-star-paired-axis-census/README.md +++ b/research/idle-star-paired-axis-census/README.md @@ -1,6 +1,6 @@ # T740 idle-axis reassignment: exact transfer census and CP-SAT screen -**Scoped negative result; no new κ or admitted supplier.** PR #3184 claims a conditional κ of `0.001730189061233850760095…` from redistributing idle rank-48 axes. PR #3187 gives an exact physical-operator counterexample to its first committed star move. This package extends that check to every eligible one-axis transfer and paired transfer on the four rank-48 children, independently replays PR3184's actual replica-0/port-0 star, and tests a relaxed CP-SAT assignment optimum. +**Scoped negative result; no new κ or admitted supplier.** PR #3184 claims a conditional κ of `0.001730189061233850760095…` from redistributing idle rank-48 axes. PR #3187 gives an exact physical-operator counterexample to its first committed star move. This package extends that check to every eligible one-axis transfer and paired transfer on the four rank-48 children, independently replays PR3184's actual replica-0/port-0 star, and screens assignment optima with OR-Tools. ## Result @@ -28,7 +28,19 @@ All 112 port models were optimal. Each found the same best rank profile `[51,51, To reproduce the optional artifact, use Python 3.10.12 with OR-Tools 9.11.4210 and run `python3.10 -B research/idle-star-paired-axis-census/ortools_screen.py > research/idle-star-paired-axis-census/ORTOOLS-RESULT.json`. The registered exact-replay package does not depend on OR-Tools. `ORTOOLS-RESULT.json` records the solver candidates and their first exact replay counterexamples. -The exact census and star-isolation argument cover owner replica zero and the same-centre star class only; multi-donor cycles can combine nonorthogonal moved axes, and other child/time pairs and nonzero replicas remain open. The CP-SAT result supplies the best rank-profile candidate for its stated four-child assignment relaxation, but only one minimum-move assignment at that profile is replayed per port. Neither experiment claims a general obstruction. The selected record and frontier are unchanged. +## Exact-coordinate CP-SAT upper screen + +The original assignment model optimizes rank without enforcing physical equality. The optional `operator_ortools_screen.py` instead asks whether any rank-changing assignment can pass the exact operator test on all 73 coordinate Fourier characters, before considering a moment objective. For each port it enumerates all 256 phase-delta vectors in `Z4^4` at each coordinate character using the exact Gaussian-integer replay. In every one of the 112 port recipes, only the zero delta preserves the matrix at each character. The SHA256 of each port's complete 73-table receipt is `ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83`. + +CP-SAT then asks for `max(child rank) >= 49` while assigning the 192 residual-axis tokens arbitrarily among children `(8,10,12,13)`, fixing hosted axes, keeping final child bases orthonormal and capping rank at 51. It deliberately omits per-axis translation and commuting restrictions, so its assignment model is a superset of the physically eligible moves. All 112 models are `INFEASIBLE`. Since a truly operator-preserving reassignment must preserve these 73 exact matrices, this rules out a rank change in this four-child, owner-replica-zero assignment class under the fixed inventory and schedule. It is a finite-mode result, not an all-character symbolic proof or a theorem about other owner replicas, children, schedules or suppliers. + +Reproduce the optional 47-minute run with Python 3.10.12 and OR-Tools 9.11.4210: + +```sh +python3.10 research/idle-star-paired-axis-census/operator_ortools_screen.py +``` + +The result is recorded in `OPERATOR-ORTOOLS-RESULT.json`; this search is kept outside the registered replay so normal package CI does not require OR-Tools or a long run. The active [Discussion #2612 claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/2612#discussioncomment-19002311) asks whether added paid phase children can repair an operator-failing reassignment while preserving a moment saving. This screen supplies a finite-coordinate no-repair result only for the stated owner-zero four-child slice; it does not establish repair cost or κ. The selected record and frontier are unchanged. ## Reproduce @@ -43,7 +55,7 @@ The verifier independently implements the exact eight-stream Gaussian-integer re ## Open next questions -See the structured tasks in [TASK.json](TASK.json). The remaining question within this slice is whether a multi-donor cycle with nonorthogonal moved axes can preserve the complete operator; first charge its maximum possible profile change against the full supplier bill. A different child/time pair needs its own insertion-to-insertion intertwiner and source-bound replay. +See the structured tasks in [TASK.json](TASK.json). The four-child owner-replica-zero slice has no rank-changing assignment passing even the 73 coordinate modes in the broader CP-SAT relaxation. Discussion #2612 now investigates whether added paid phase children can repair an operator-failing reassignment; avoid duplicating that repair-cost work. A distinct next direction is a different child/time pair or owner replica; it needs its own insertion-to-insertion intertwiner and source-bound replay, and should be priced before a large search. ## Credit diff --git a/research/idle-star-paired-axis-census/SOURCES.json b/research/idle-star-paired-axis-census/SOURCES.json index bb1382d014..74b34a7cc4 100644 --- a/research/idle-star-paired-axis-census/SOURCES.json +++ b/research/idle-star-paired-axis-census/SOURCES.json @@ -87,7 +87,7 @@ "canonical_main": "463113d675af7410ac91d53a4fed51ec6494eb9a", "priority_revision": 6, "selected_kappa": "0.001672660197076918", - "note": "Refreshed before the PR update. Priority revision and selected result are unchanged; source files pinned above are unchanged. This checkpoint is context, not an input to verify.py." + "note": "Canonical main was refreshed before this submission. Priority revision, selected result and pinned source files are unchanged. This checkpoint is context, not an input to verify.py." }, "pr3184_artifact_head": "6faefe19f592220c16722a6682c22c8fbccd4bb4", "pr3184_star_moves_sha256": "ea833cc374c16c4bed4da6328a77353171944d947bed1d28085212ffad786e90" diff --git a/research/idle-star-paired-axis-census/TASK.json b/research/idle-star-paired-axis-census/TASK.json index e261f6a67b..cfb62d2853 100644 --- a/research/idle-star-paired-axis-census/TASK.json +++ b/research/idle-star-paired-axis-census/TASK.json @@ -46,27 +46,22 @@ ] }, "scope_status": "refined", - "actual_scope": "Independent exact replay of idle-axis redistribution on all 112 T740 port recipes for owner replica zero: test every eligible one-axis move among children (8,10,12,13); test common-axis paired transfers from (8,10) to (12,13) and in reverse; replay the source-pinned PR3184 replica-0/port-0 star; derive own-axis isolation for all same-centre stars in this four-child class; and use OR-Tools CP-SAT to optimize assignments of 192 residual-axis tokens under hosted-axis and pairwise-orthogonality constraints with rank cap 51.", - "scope_change_reason": "PR3187 gives an exact counterexample to PR3184’s first committed star move. After the single and paired census, the remaining matched-swap/longer-cycle question is naturally an assignment problem: an incoming vector may become feasible if a nonorthogonal destination vector leaves at the same time. OR-Tools is used only for candidate nomination and a local moment objective; exact replay remains the physical acceptance test. The all-single census also yields a scoped isolation proof for same-centre stars, and an independently implemented replay checks the actual pinned PR3184 replica-0/port-0 move. The user explicitly favored OR-Tools for optimization.", - "bottleneck_link": "A better rank histogram changes the moment only if the exact hosted eight-stream physical operator is preserved. Every eligible one-axis transfer fails, which isolates any nonempty same-centre star built from an orthonormal donor basis in the audited owner-0 slice. CP-SAT additionally finds the most uneven profile in a relaxed four-child assignment model; neither result is a new provider moment or κ.", + "actual_scope": "Independent exact replay of idle-axis redistribution on all 112 T740 port recipes for owner replica zero: every eligible one-axis and paired transfer among children (8,10,12,13); the source-pinned PR3184 replica-0/port-0 star; the same-centre-star isolation argument; an optional rank-only CP-SAT assignment optimum; and an optional exact-coordinate CP-SAT feasibility screen. The latter enumerates all 256 Z4 phase deltas at each of 73 coordinate characters, then asks whether any rank-changing arbitrary assignment of the 192 residual tokens can preserve those matrices, with hosted axes fixed, final bases orthonormal and rank cap 51.", + "scope_change_reason": "PR3187 supplies an exact physical counterexample to PR3184’s first committed star move. The single-transfer census extends this to the same-centre star class. The first OR-Tools model nominated rank-only optima but did not constrain operator equality. A later OR-Tools screen inserts exact equality at all 73 coordinate characters into a broader assignment relaxation before asking about rank changes. Discussion #2612 now has a distinct active claim about paid phase-child repairs; this package is scoped to the no-repair assignment class and does not duplicate the repair-cost analysis. The user explicitly favored OR-Tools for optimization.", + "bottleneck_link": "A lower rank moment helps only if the exact hosted eight-stream operator is preserved. Every eligible one-axis transfer fails; the single-axis census isolates same-centre stars. For the broader four-child owner-0 assignment relaxation, the exact-coordinate CP-SAT screen finds no rank-changing assignment even before the per-axis translation gates are imposed. No result changes a complete supplier moment, κ, admission or the selected frontier.", "budget_minutes": 60, - "stop_rule": "Authenticate the complete T740 fill, PR3184 star artifact and all 112 recipes; verify positive baseline controls; enumerate eligible single-axis and paired transfers; replay PR3184’s actual replica-0/port-0 star at each moved axis; use the complete single-axis census to isolate the same-centre star family; for each port solve the residual-axis assignment model to optimality for the local moment surrogate and minimum move count, then replay the nominated candidate on the recorded character set. Do not claim all assignments at the optimal rank profile or multi-donor cycles fail, and do not generalize to other child pairs or replicas.", + "stop_rule": "Authenticate the complete T740 fill and PR3184 star artifact; verify the positive baseline controls; enumerate single and paired transfers; replay the pinned star; screen the rank-only optimum; then compute all 73 exact coordinate phase tables per port and solve the rank-change CP-SAT feasibility model across all 112 ports. Stop this owner-replica-zero four-child slice after its registered replay and 112 infeasibility receipts. Do not generalize to another owner, child/time pair, schedule or supplier.", "outcome": "completed", - "evidence": "verify.py authenticates the PR3148 T740 payload SHA256 8f4d6965…e00 and the complete PR3184 STAR-MOVES payload from head 6faefe19f592220c16722a6682c22c8fbccd4bb4. It checks the baseline on 147 modes for port 0 plus the zero-character identity for all ports; all 21,504 eligible single-axis candidates and 5,376 paired candidates change the exact Gaussian-integer stream matrix at their own Fourier character. The moved axes in a same-centre star are a subset of one orthonormal donor basis, so any nonempty such star is isolated by one rejected single move on each audited owner-0 recipe. The actual PR3184 replica-0/port-0 star sends [16,32,64] from child 10 to 12 and [128,256,4096] from 10 to 13; at character 16 its full overlay equals the isolated single move and differs from baseline in three matrix entries. Optional CP-SAT 9.11.4210 solves 112 relaxed rank-assignment models to optimality, each finding [51,51,51,39] from [48,48,48,48] with 12 moves; one minimum-move representative per port fails at character 1, 2 or 32. No new κ, supplier admission, or selected-frontier change.", + "evidence": "verify.py authenticates the PR3148 T740 payload SHA256 8f4d6965…e00 and the complete PR3184 STAR-MOVES payload from head 6faefe19f592220c16722a6682c22c8fbccd4bb4. It checks the baseline on 147 modes for port 0 plus the zero-character identity for all ports; all 21,504 eligible single-axis candidates and 5,376 paired candidates change the exact Gaussian-integer stream matrix at their own Fourier character. The moved axes in a same-centre star are a subset of one orthonormal donor basis, so any nonempty same-centre star is isolated by one rejected single move on each audited owner-0 recipe. The actual PR3184 replica-0/port-0 star sends [16,32,64] from child 10 to 12 and [128,256,4096] from 10 to 13; at character 16 its full overlay equals the isolated single move and differs from baseline in three entries. Optional OR-Tools 9.11.4210 rank-only search solves 112 models to [51,51,51,39] from [48,48,48,48], but its representative fails exact replay. A second optional OR-Tools screen independently constructs exact phase-delta tables by replaying all 256 delta vectors at each of 73 coordinate characters. For every character of every one of the 112 ports, only delta (0,0,0,0) preserves the operator (table SHA256 ed9ef60a17efb46b44a064986acf28935c7ab07a46ddc8007dc802bbc8200a83). Under the broader arbitrary-token assignment model with fixed hosted axes, orthonormal final bases and rank cap 51, CP-SAT proves INFEASIBLE for any rank-changing assignment in all 112 ports. This is a finite-coordinate necessary-condition screen, not a full symbolic all-character proof. No new κ or selected-frontier change.", "author": "OpenAI Codex", "ai_assistance": "OpenAI Codex wrote the independent exact replay, source-bound census, optional OR-Tools CP-SAT search and package. OR-Tools discovery used Python 3.10.12 / OR-Tools 9.11.4210. No independent human review or proof-assistant verification is claimed.", "open_questions": [ { - "question": "Can a multi-donor cycle with nonorthogonal moved axes preserve the full operator and retain enough fully charged moment improvement?", - "why_it_matters": "Same-centre stars are isolated by an active moved-axis character, but exchanging axes among multiple donors can couple nonorthogonal phases and evade that argument.", - "first_step": "First derive the maximum complete-provider moment improvement allowed by the four-child assignment relaxation. If it can change the decision, add CP-SAT no-good cuts for screened assignments and replay candidates over a complete character quotient or prove a compact exact criterion.", - "blocked_by": "The current receipt tests one minimum-move representative per port, not all relaxed assignments; it also does not model the full operator in CP-SAT or charge a surviving overlay through the complete supplier invoice." - }, - { - "question": "Does any other child/time pair on the T740 schedule admit a physically valid rank-changing transfer?", - "why_it_matters": "A different schedule cut could change the rank profile while avoiding this paired obstruction.", - "first_step": "Derive exact insertion-to-insertion intertwiners for each candidate pair and use the current port-0 witness as a regression control before optimizing a new profile.", - "blocked_by": "This package audits only child pairs (8,10) and (12,13) on owner replica zero; a complete all-pair search is outside its bounded scope." + "question": "Can a different owner replica or child/time pair admit a physically valid rank-changing transfer after the four-child owner-0 coordinate screen?", + "why_it_matters": "A profile change can improve the complex moment only if its local physical block preserves the operator; the current exact screen is pinned to one owner-replica slice and one four-child group.", + "first_step": "Treat the active paid-phase-child repair claim in Discussion #2612 as the next step for this four-child family; do not repeat its repair-cost analysis. For a distinct pair or owner, derive a source-specific insertion-to-insertion intertwiner and first compute its complete-provider moment allowance.", + "blocked_by": "No exact replay or complete cost charge has been constructed here for another owner replica, child/time pair, schedule or supplier." } - ] + ], + "canonical_discussion": "https://github.com/CrocSwap/integer-mult-bounds/discussions/2612" } diff --git a/research/idle-star-paired-axis-census/operator_ortools_screen.py b/research/idle-star-paired-axis-census/operator_ortools_screen.py new file mode 100644 index 0000000000..1703cfc33a --- /dev/null +++ b/research/idle-star-paired-axis-census/operator_ortools_screen.py @@ -0,0 +1,230 @@ +#!/usr/bin/env python3 +"""CP-SAT upper screen for exact operator equality on 73 coordinate characters. + +This is an optional discovery/relaxation run, not the registered admission check. +For each of the 112 owner-replica-zero port contexts, it allows every reassignment +of the four 48-axis residual multisets, fixes hosted axes, requires orthonormal +final child bases and rank <= 51, and asks whether any rank-changing assignment +can preserve the exact eight-stream operator on all 73 coordinate characters. +It deliberately omits per-axis translation/commuting restrictions, making the +assignment model a superset of physically eligible moves. +""" +from __future__ import annotations + +import argparse +import hashlib +import importlib.util +import itertools +import json +import sys +import time +from pathlib import Path + +from ortools.sat.python import cp_model +import ortools + +PACKAGE = Path(__file__).resolve().parent +ROOT = PACKAGE.parents[1] +CHILDREN = (8, 10, 12, 13) +CHARACTER_BITS = 73 +MAX_RANK = 51 +TABLE_SIZE = 10**12 +TIME_LIMIT = 30.0 + + +def load_screen(): + spec = importlib.util.spec_from_file_location("idle_axis_ortools", PACKAGE / "ortools_screen.py") + module = importlib.util.module_from_spec(spec) + assert spec and spec.loader + spec.loader.exec_module(module) + return module + + +def phase_delta_table(v, context, blocks, character): + """All 4^4 child phase shifts that preserve the exact matrix at character.""" + baseline = v.replay(context, context["residual"], character, blocks) + probe_axis = character & -character + allowed = [] + for delta in itertools.product(range(4), repeat=len(CHILDREN)): + trial = {child: list(axes) for child, axes in context["residual"].items()} + for child, amount in zip(CHILDREN, delta, strict=True): + # Replay consumes only dot-products; repeating this probe axis changes + # that child's phase exponent by `amount` without changing any input. + trial[child].extend([probe_axis] * amount) + if v.replay(context, trial, character, blocks) == baseline: + allowed.append(list(delta)) + return allowed + + +def build_model(cp_model_module, context, coordinate_tables, port): + model = cp_model_module.CpModel() + tokens = [(source, axis) for source in CHILDREN for axis in context["residual"][source]] + if len(tokens) != 192 or any(len(context["residual"][c]) != 48 for c in CHILDREN): + raise ValueError(f"port {port}: expected four 48-axis residual bases") + + x = {(t, dest): model.NewBoolVar(f"p{port}_x_{t}_{dest}") + for t in range(len(tokens)) for dest in CHILDREN} + hosted = {child: context["hosted_axes"].get(child, []) for child in CHILDREN} + dot = lambda a, b: (int(a) & int(b)).bit_count() & 1 + + for t, (_, axis) in enumerate(tokens): + model.AddExactlyOne(x[t, child] for child in CHILDREN) + for child in CHILDREN: + if any(dot(axis, fixed) for fixed in hosted[child]): + model.Add(x[t, child] == 0) + + # Every final residual+hosted child basis must remain orthonormal. This is + # the only assignment-geometry restriction beyond fixed hosted axes. + for i, (_, left) in enumerate(tokens): + for j in range(i + 1, len(tokens)): + right = tokens[j][1] + if dot(left, right): + for child in CHILDREN: + model.Add(x[i, child] + x[j, child] <= 1) + + ranks = {} + for child in CHILDREN: + ranks[child] = model.NewIntVar(len(hosted[child]), MAX_RANK, f"p{port}_rank_{child}") + model.Add(ranks[child] == len(hosted[child]) + sum(x[t, child] for t in range(len(tokens)))) + + # Any non-uniform rank vector with conserved total 192 has a rank >= 49. + high = model.NewIntVar(0, MAX_RANK, f"p{port}_high") + model.AddMaxEquality(high, list(ranks.values())) + model.Add(high >= 49) + + # Exact necessary equality at each coordinate character. A character's + # matrix depends on the four new residual phase counts modulo 4. The allowed + # tuples below were exhaustively replayed over all 4^4 possibilities. + for bit, allowed in enumerate(coordinate_tables): + character = 1 << bit + phase_deltas = [] + for child in CHILDREN: + old_count = sum(dot(character, axis) for axis in context["residual"][child]) + new_count = model.NewIntVar(0, 192, f"p{port}_count_{bit}_{child}") + model.Add(new_count == sum( + dot(character, axis) * x[t, child] + for t, (_, axis) in enumerate(tokens) + )) + delta = model.NewIntVar(0, 3, f"p{port}_delta_{bit}_{child}") + # 192 is divisible by four and keeps the modulo input nonnegative. + model.AddModuloEquality(delta, new_count - old_count + 192, 4) + phase_deltas.append(delta) + if allowed: + model.AddAllowedAssignments(phase_deltas, allowed) + else: + model.Add(phase_deltas[0] == -1) + + model.Minimize(0) + return model, tokens, x, ranks + + +def screen_feasible(v, context, blocks, tokens, x, solver): + destinations = [next(c for c in CHILDREN if solver.Value(x[t, c])) for t in range(len(tokens))] + trial = {child: list(axes) for child, axes in context["residual"].items()} + for child in CHILDREN: + trial[child] = [] + for (_, axis), destination in zip(tokens, destinations, strict=True): + trial[destination].append(axis) + moved = [axis for (source, axis), dest in zip(tokens, destinations, strict=True) if source != dest] + characters = {1 << bit for bit in range(CHARACTER_BITS)} + characters.update(moved) + characters.update(a ^ b for i, a in enumerate(moved) for b in moved[i + 1:]) + mismatches = [] + for character in sorted(characters): + if v.replay(context, context["residual"], character, blocks) != v.replay(context, trial, character, blocks): + mismatches.append(character) + break + ranks = {str(c): len(trial[c]) + len(context["hosted_axes"].get(c, [])) for c in CHILDREN} + moved_payload = [[source, dest, axis] + for (source, axis), dest in zip(tokens, destinations, strict=True) + if source != dest] + return { + "rank_vector": ranks, + "moved_tokens": len(moved_payload), + "assignment_sha256": hashlib.sha256( + json.dumps(moved_payload, separators=(",", ":")).encode("ascii") + ).hexdigest(), + "finite_screen_characters": len(characters), + "first_screen_mismatch": mismatches[0] if mismatches else None, + } + + +def run(output: Path, port_limit: int | None = None): + screen = load_screen() + v = screen.load_verifier() + contexts, blocks = screen.prepare(v) + if port_limit is not None: + contexts = contexts[:port_limit] + rows = [] + total_start = time.time() + for port, context in enumerate(contexts): + port_start = time.time() + tables = [phase_delta_table(v, context, blocks, 1 << bit) for bit in range(CHARACTER_BITS)] + table_bytes = json.dumps(tables, separators=(",", ":")).encode("ascii") + model, tokens, x, ranks = build_model(cp_model, context, tables, port) + solver = cp_model.CpSolver() + solver.parameters.max_time_in_seconds = TIME_LIMIT + solver.parameters.num_search_workers = 1 + solver.parameters.random_seed = 0 + status = solver.Solve(model) + row = { + "port": port, + "coordinate_characters": CHARACTER_BITS, + "accepted_phase_tuple_counts": {str(k): sum(len(t) == k for t in tables) for k in sorted({len(t) for t in tables})}, + "phase_table_sha256": hashlib.sha256(table_bytes).hexdigest(), + "solver_status": solver.StatusName(status), + "solver_seconds": round(solver.WallTime(), 6), + "wall_seconds": round(time.time() - port_start, 3), + } + if status in (cp_model.FEASIBLE, cp_model.OPTIMAL): + row["candidate"] = screen_feasible(v, context, blocks, tokens, x, solver) + rows.append(row) + progress = { + "progress": f"{port + 1}/{len(contexts)}", + "elapsed_seconds": round(time.time() - total_start, 1), + "statuses": {s: sum(r["solver_status"] == s for r in rows) for s in sorted({r["solver_status"] for r in rows})}, + } + print(json.dumps(progress, sort_keys=True), flush=True) + + status_counts = {s: sum(r["solver_status"] == s for r in rows) for s in sorted({r["solver_status"] for r in rows})} + result = { + "status": "PASS_NO_RANK_CHANGING_ASSIGNMENT_AT_73_COORDINATE_CHARACTERS" + if status_counts == {"INFEASIBLE": len(contexts)} + else "COORDINATE_CHARACTER_RELAXATION_REMAINS_OPEN", + "base_main": v.BASE_MAIN, + "fill_payload_sha256": v.FILL_SHA256, + "solver": "OR-Tools CP-SAT", + "ortools_version": ortools.__version__, + "python": sys.version.split()[0], + "scope": "owner-replica-zero; four residual rank-48 children (8,10,12,13); exact equality at all 73 coordinate Fourier characters; arbitrary token assignment, fixed hosted axes, orthonormal final bases, rank cap 51; per-axis translation and other physical gates omitted, so this is a super-relaxation", + "model": { + "tokens_per_port": 192, + "coordinate_characters_per_port": 73, + "phase_delta_domain_per_character": 256, + "rank_change_constraint": "max(child ranks) >= 49", + "threads": 1, + "seed": 0, + "time_limit_seconds_per_port": TIME_LIMIT, + }, + "status_counts": status_counts, + "ports": rows, + "elapsed_seconds": round(time.time() - total_start, 3), + "selected_frontier_changed": False, + "new_kappa": None, + } + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(result, indent=2, sort_keys=True) + "\n") + print(json.dumps({"result": result["status"], "ports": len(rows), "statuses": status_counts, + "elapsed_seconds": result["elapsed_seconds"], "output": str(output)}, sort_keys=True), flush=True) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, default=PACKAGE / "OPERATOR-ORTOOLS-RESULT.json") + parser.add_argument("--port-limit", type=int, help="pilot on the first N port contexts") + args = parser.parse_args() + run(args.output, args.port_limit) + + +if __name__ == "__main__": + main() From d138f8329e8c5aac9f61a071b5e21e1d49f04331 Mon Sep 17 00:00:00 2001 From: Gonzalo-Mier Date: Sat, 17 Oct 2026 20:22:16 +0200 Subject: [PATCH 4/4] Update live context for idle-axis screen --- research/idle-star-paired-axis-census/README.md | 6 +++--- research/idle-star-paired-axis-census/SOURCES.json | 2 +- research/idle-star-paired-axis-census/TASK.json | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/research/idle-star-paired-axis-census/README.md b/research/idle-star-paired-axis-census/README.md index 40f43cf298..b520bb8eae 100644 --- a/research/idle-star-paired-axis-census/README.md +++ b/research/idle-star-paired-axis-census/README.md @@ -1,6 +1,6 @@ # T740 idle-axis reassignment: exact transfer census and CP-SAT screen -**Scoped negative result; no new κ or admitted supplier.** PR #3184 claims a conditional κ of `0.001730189061233850760095…` from redistributing idle rank-48 axes. PR #3187 gives an exact physical-operator counterexample to its first committed star move. This package extends that check to every eligible one-axis transfer and paired transfer on the four rank-48 children, independently replays PR3184's actual replica-0/port-0 star, and screens assignment optima with OR-Tools. +**Scoped negative result; no new κ or admitted supplier.** PR #3184's replica-0/port-0 star is one source-pinned move checked here. At the final live-overlap snapshot (2026-10-17 18:20 UTC), the latest open conditional claim in this branch was PR #3200 at `0.001734807021726127552033`; the selected κ remains `0.001672660197076918`. This package does not validate or refute PR #3200's complete allocation or invoice. PR #3187 supplies an exact physical-operator counterexample to PR #3184's first committed star move. This package extends that check to every eligible one-axis transfer and paired transfer on four rank-48 children, independently replays PR3184's actual replica-0/port-0 star, and screens assignment optima with OR-Tools. ## Result @@ -40,7 +40,7 @@ Reproduce the optional 47-minute run with Python 3.10.12 and OR-Tools 9.11.4210: python3.10 research/idle-star-paired-axis-census/operator_ortools_screen.py ``` -The result is recorded in `OPERATOR-ORTOOLS-RESULT.json`; this search is kept outside the registered replay so normal package CI does not require OR-Tools or a long run. The active [Discussion #2612 claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/2612#discussioncomment-19002311) asks whether added paid phase children can repair an operator-failing reassignment while preserving a moment saving. This screen supplies a finite-coordinate no-repair result only for the stated owner-zero four-child slice; it does not establish repair cost or κ. The selected record and frontier are unchanged. +The result is recorded in `OPERATOR-ORTOOLS-RESULT.json`; this search is kept outside the registered replay so normal package CI does not require OR-Tools or a long run. Related work was posted during this investigation: [PR #3204](https://github.com/CrocSwap/integer-mult-bounds/pull/3204) claims a broader written four-site rank-rigidity proof under the fixed schedule, and [PR #3220](https://github.com/CrocSwap/integer-mult-bounds/pull/3220) analyzes added paid phase-child repairs in a bounded domain. This CP-SAT result is only a finite-coordinate cross-check on the source-bound owner-zero fill; it does not replace #3204's proof or settle the wider repair question in #3220. The selected record and frontier are unchanged. ## Reproduce @@ -55,7 +55,7 @@ The verifier independently implements the exact eight-stream Gaussian-integer re ## Open next questions -See the structured tasks in [TASK.json](TASK.json). The four-child owner-replica-zero slice has no rank-changing assignment passing even the 73 coordinate modes in the broader CP-SAT relaxation. Discussion #2612 now investigates whether added paid phase children can repair an operator-failing reassignment; avoid duplicating that repair-cost work. A distinct next direction is a different child/time pair or owner replica; it needs its own insertion-to-insertion intertwiner and source-bound replay, and should be priced before a large search. +See the structured tasks in [TASK.json](TASK.json). The four-child owner-replica-zero slice has no rank-changing assignment passing even the 73 coordinate modes in the broader CP-SAT relaxation. PRs #3204 and #3220 cover the broader four-site rigidity and bounded paid-repair questions, respectively; do not duplicate those scopes. A distinct next direction is another child/time pair or owner replica; it needs its own insertion-to-insertion intertwiner and source-bound replay, and should be priced before a large search. ## Credit diff --git a/research/idle-star-paired-axis-census/SOURCES.json b/research/idle-star-paired-axis-census/SOURCES.json index 74b34a7cc4..5703c44044 100644 --- a/research/idle-star-paired-axis-census/SOURCES.json +++ b/research/idle-star-paired-axis-census/SOURCES.json @@ -87,7 +87,7 @@ "canonical_main": "463113d675af7410ac91d53a4fed51ec6494eb9a", "priority_revision": 6, "selected_kappa": "0.001672660197076918", - "note": "Canonical main was refreshed before this submission. Priority revision, selected result and pinned source files are unchanged. This checkpoint is context, not an input to verify.py." + "note": "Canonical main 463113d675af7410ac91d53a4fed51ec6494eb9a was refreshed before submission; priority revision 6, selected result and pinned source files are unchanged. Live overlap refreshed 2026-10-17T18:19:39Z for 267 open PRs and 2026-10-17T18:20:12Z for 2,033 discussion records. At that snapshot PR3204 had a broader fixed-schedule rigidity proof, PR3220 a bounded paid-repair cost analysis, and PR3200 the latest open conditional kappa claim. These are context, not inputs to verify.py." }, "pr3184_artifact_head": "6faefe19f592220c16722a6682c22c8fbccd4bb4", "pr3184_star_moves_sha256": "ea833cc374c16c4bed4da6328a77353171944d947bed1d28085212ffad786e90" diff --git a/research/idle-star-paired-axis-census/TASK.json b/research/idle-star-paired-axis-census/TASK.json index cfb62d2853..e809ab13a2 100644 --- a/research/idle-star-paired-axis-census/TASK.json +++ b/research/idle-star-paired-axis-census/TASK.json @@ -47,8 +47,8 @@ }, "scope_status": "refined", "actual_scope": "Independent exact replay of idle-axis redistribution on all 112 T740 port recipes for owner replica zero: every eligible one-axis and paired transfer among children (8,10,12,13); the source-pinned PR3184 replica-0/port-0 star; the same-centre-star isolation argument; an optional rank-only CP-SAT assignment optimum; and an optional exact-coordinate CP-SAT feasibility screen. The latter enumerates all 256 Z4 phase deltas at each of 73 coordinate characters, then asks whether any rank-changing arbitrary assignment of the 192 residual tokens can preserve those matrices, with hosted axes fixed, final bases orthonormal and rank cap 51.", - "scope_change_reason": "PR3187 supplies an exact physical counterexample to PR3184’s first committed star move. The single-transfer census extends this to the same-centre star class. The first OR-Tools model nominated rank-only optima but did not constrain operator equality. A later OR-Tools screen inserts exact equality at all 73 coordinate characters into a broader assignment relaxation before asking about rank changes. Discussion #2612 now has a distinct active claim about paid phase-child repairs; this package is scoped to the no-repair assignment class and does not duplicate the repair-cost analysis. The user explicitly favored OR-Tools for optimization.", - "bottleneck_link": "A lower rank moment helps only if the exact hosted eight-stream operator is preserved. Every eligible one-axis transfer fails; the single-axis census isolates same-centre stars. For the broader four-child owner-0 assignment relaxation, the exact-coordinate CP-SAT screen finds no rank-changing assignment even before the per-axis translation gates are imposed. No result changes a complete supplier moment, κ, admission or the selected frontier.", + "scope_change_reason": "PR3187 supplies an exact physical counterexample to PR3184’s first committed star move. The single-transfer census extends this to the same-centre star class. The first OR-Tools model nominated rank-only optima but did not constrain operator equality. A later OR-Tools screen inserts exact equality at all 73 coordinate characters into a broader assignment relaxation before asking about rank changes. During the run, PR3204 posted a broader written four-site rigidity proof and PR3220 a bounded paid-phase-repair cost analysis; the optional model is retained only as a finite source-bound CP-SAT cross-check, not as a replacement for either result. The user explicitly favored OR-Tools for optimization.", + "bottleneck_link": "A lower rank moment helps only if the exact hosted eight-stream operator is preserved. Every eligible one-axis transfer fails; the single-axis census isolates same-centre stars. For the broader four-child owner-0 assignment relaxation, the exact-coordinate CP-SAT screen finds no rank-changing assignment even before the per-axis translation gates are imposed. A live 2026-10-17 18:20 UTC snapshot recorded PR3204's broader four-site rigidity proof, PR3220's bounded repair-cost analysis and PR3200's latest conditional κ claim (0.001734807021726127552033); none is replaced or independently validated by this finite receipt. No result changes a complete supplier moment, κ, admission or the selected frontier.", "budget_minutes": 60, "stop_rule": "Authenticate the complete T740 fill and PR3184 star artifact; verify the positive baseline controls; enumerate single and paired transfers; replay the pinned star; screen the rank-only optimum; then compute all 73 exact coordinate phase tables per port and solve the rank-change CP-SAT feasibility model across all 112 ports. Stop this owner-replica-zero four-child slice after its registered replay and 112 infeasibility receipts. Do not generalize to another owner, child/time pair, schedule or supplier.", "outcome": "completed", @@ -59,7 +59,7 @@ { "question": "Can a different owner replica or child/time pair admit a physically valid rank-changing transfer after the four-child owner-0 coordinate screen?", "why_it_matters": "A profile change can improve the complex moment only if its local physical block preserves the operator; the current exact screen is pinned to one owner-replica slice and one four-child group.", - "first_step": "Treat the active paid-phase-child repair claim in Discussion #2612 as the next step for this four-child family; do not repeat its repair-cost analysis. For a distinct pair or owner, derive a source-specific insertion-to-insertion intertwiner and first compute its complete-provider moment allowance.", + "first_step": "Use PR3204 and PR3220 as the current four-site rigidity and bounded repair-cost results; do not repeat those scopes. For a distinct pair or owner, derive a source-specific insertion-to-insertion intertwiner and first compute its complete-provider moment allowance.", "blocked_by": "No exact replay or complete cost charge has been constructed here for another owner replica, child/time pair, schedule or supplier." } ],