From ccff0fb7ed8f53a686a3f2ecc2a5585d7bd8a505 Mon Sep 17 00:00:00 2001 From: SHIN09-git Date: Wed, 28 Oct 2026 12:55:15 +0800 Subject: [PATCH 1/5] Retain exact chain-count and rotation source excerpts --- .../chain-cyclic-schedules/.gitattributes | 2 + .../source/6037-README.md | 133 +++++ .../source/6037-RESULT.json | 463 ++++++++++++++++++ .../chain-cyclic-schedules/source/LICENSE | 201 ++++++++ .../source/chain-tariff-PROOF.md | 213 ++++++++ .../source/depth5-README.md | 150 ++++++ .../source/depth6-README.md | 182 +++++++ 7 files changed, 1344 insertions(+) create mode 100644 research/chain-cyclic-schedules/.gitattributes create mode 100644 research/chain-cyclic-schedules/source/6037-README.md create mode 100644 research/chain-cyclic-schedules/source/6037-RESULT.json create mode 100644 research/chain-cyclic-schedules/source/LICENSE create mode 100644 research/chain-cyclic-schedules/source/chain-tariff-PROOF.md create mode 100644 research/chain-cyclic-schedules/source/depth5-README.md create mode 100644 research/chain-cyclic-schedules/source/depth6-README.md diff --git a/research/chain-cyclic-schedules/.gitattributes b/research/chain-cyclic-schedules/.gitattributes new file mode 100644 index 0000000000..20cd7d6852 --- /dev/null +++ b/research/chain-cyclic-schedules/.gitattributes @@ -0,0 +1,2 @@ +* text eol=lf +source/** -text diff --git a/research/chain-cyclic-schedules/source/6037-README.md b/research/chain-cyclic-schedules/source/6037-README.md new file mode 100644 index 0000000000..c432642716 --- /dev/null +++ b/research/chain-cyclic-schedules/source/6037-README.md @@ -0,0 +1,133 @@ +# Balanced depth-three chain multiplicities break every unit symmetry + +**Claim type: finite certificate (exact counts for m = 2..24) with a short +scoped proof of its prime-characteristic consequence. No closed form, new +call count, tariff or kappa is claimed.** This contribution is produced by +Nick Petalas. + +## Object + +The unsigned depth-three dirty chain of +[research/chain-tariff](../chain-tariff/README.md) (PR #4257) has the calls +`1: z1 += B1 x`, `2: z2 += B2 z1` and `3: y += B3 z2` over a ring of exact +characteristic m. Its PROOF.md shows that a word is correct for the target +`y += c B3 B2 B1 x` exactly when every one-letter count and the subword counts +N12 and N23 vanish modulo m and N13 = c modulo m. Here Nij counts scattered +subwords i(i+1)...j. Let W(m,c) be the number of balanced words, with m copies +of each letter, that satisfy these conditions. The chain-tariff package asks +for a closed form for these multiplicities at arbitrary m. + +For the one-source depth-two connector, PR #4236 proves a count that depends +only on gcd(c,m) through Ramanujan sums. In particular, at prime m every +nonzero c has the same count. + +## Result + +**Finite certificate.** For every 3 <= m <= 24, the m-1 numbers +W(m,1), ..., W(m,m-1) are pairwise distinct. Consequently no nontrivial unit u +modulo m satisfies W(m,uc) = W(m,c) for all c. In this range, no formula for +W(m,c) can depend only on gcd(c,m), on c up to sign, or on any other +unit-invariant feature of c. The depth-two law therefore does not extend to +depth three, even at prime m. The first rows are: + +```text +m c=0 .. m-1 +2 42 0 +3 270 24 0 +4 2370 216 432 0 +5 15456 5340 6390 3000 2970 +6 216774 40320 96954 60228 84888 22320 +7 1636956 1102374 1231314 1119006 1214262 869862 1052352 +8 29455074 14150304 21697992 13892784 24824112 13586496 20537808 12071664 +``` + +[RESULT.json](RESULT.json) holds every exact count for m <= 24, with the +argmin and argmax nonzero residue per row. The zero entries are exactly the +exceptional targets (2,1), (3,2), (4,3) of the predecessor theorem. This +agrees with it and is not an independent audit of it. + +**Prime consequence (scoped proof).** Let p be prime, let V be the balanced +words with N12 = N23 = 0 modulo p, and let F(g) = sum over w in V of +zeta^(g N13(w)), with zeta a primitive p-th root of unity. Finite Fourier +inversion gives W(p,c) = (1/p) sum_g zeta^(-gc) F(g). The Galois automorphism +s_u (zeta to zeta^u) maps F(g) to F(ug). If s_u fixed F(1) for some unit +u != 1, then F(ug) = s_g(F(u)) = s_g(F(1)) = F(g) for every g != 0, and +F(0) is unchanged. Substituting g = u^(-1)h in the inversion formula then +gives W(p,uc) = W(p,c) for all c. The certificate excludes this for every +prime 3 <= p <= 23. Hence F(1) generates the full cyclotomic field Q(zeta_p) +there. At depth two the corresponding sum is rational at every prime, which is +why PR #4236's counts are equal. + +## Evidence and reproduction + +From the repository root, with CPython 3.12 and the standard library: + +```sh +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -W error -B research/chain-balanced-multiplicities/verify.py +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -W error -O -B research/chain-balanced-multiplicities/verify.py +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -B scripts/research_package.py --package research/chain-balanced-multiplicities +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -B scripts/check_research_commit.py --package research/chain-balanced-multiplicities --check-source-history +``` + +Any CPython 3.12 path can replace the local interpreter. Expected marker: +`PASS_CHAIN_BALANCED_MULTIPLICITIES max_m=24`. Each direct mode takes about +80 to 90 seconds locally (CPython 3.12, macOS arm64). These are check +durations, not performance claims. The verifier writes nothing unless given +`--write`, which regenerates RESULT.json. + +The verifier: + +- counts balanced words by a chronological dynamic program over the letter + counts and the residues of (N12, N23, N13), for m = 2..24; +- compares the complete residue distribution with an independent model for + m <= 7. That model fixes the A_k ones and B_k threes before the k-th 2, so + that N12 = sum A_k, N23 = sum (m - B_k) and N13 = sum A_k (m - B_k), and + weights each gap by a binomial interleaving count; +- compares it again with literal enumeration of every balanced word for m <= 5; +- checks the total mass (3m)!/(m!)^3 for every m; +- checks that the counts for nonzero residues are pairwise distinct and the + unit stabilizer is trivial for m = 3..24; +- as a positive control, reproduces PR #4236's equal depth-two counts + (binom(2p,p)-2)/p and full stabilizer at p = 2, 3, 5, 7, so the + distinctness test does detect equality when it holds; +- rejects a forged table with equal nonzero counts and compares the full + recomputation with RESULT.json. + +## Limits + +The certificate is finite: m <= 24. It does not prove distinctness, or even +nontrivial asymmetry, for larger m, and it gives no closed form. The +correctness criterion is the cited chain-tariff identity; no dirty-register +execution is repeated here. Only balanced words are counted. These are the +minimum words except at the three exceptional targets, whose minimum words +chain-tariff already counts. Multiplicity concerns schedule choice only. No +supplier caller, physical routing, admission, precision or outer +multiplication transfer is addressed. Independent human and formal +proof-kernel review are unclaimed. + +## Open next questions + +Structured versions with first steps and blockers are in [TASK.json](TASK.json). + +1. Does pairwise distinctness, or at least the trivial unit stabilizer, hold + for every m >= 3? At prime p this is the statement that F(1) is not fixed + by any nontrivial Galois automorphism. +2. Are the nonzero counts asymptotically equidistributed at prime m? The + relative spread falls to about 1.2e-7 at p = 23. Composite m stay far more + uneven, for example about 0.4% at m = 24 (spread is (max-min)/min). +3. Find a closed form or a holonomic recurrence for W(m,c). The certificate + only rules out unit-invariant shapes. + +## Credit and sources + +Nick Petalas's PR #4257 (research/chain-tariff, head +`91b4e49d0b80b0d8589f6e2cb23a0af75422e91b`) supplies the chain contract, the +interval-count correctness identity and the open question. Nick Petalas's +PR #4236 (research/unsigned-connector-residue-count, head +`bd9b426837cddd37338dd284e49cc2303de57ca0`) supplies the depth-two law used +for contrast and control. Rotation closure of correct chain words is observed +in research/depth5-chain-connector and is not used here. The complete-call +interface belongs to Ross Richardson's PR943/PR934 lineage and the +[universal connector](../universal-connector-boundary/README.md). Predecessor +results are cited, not rechecked. Pins are in [SOURCES.json](SOURCES.json). +New files are Apache-2.0. diff --git a/research/chain-cyclic-schedules/source/6037-RESULT.json b/research/chain-cyclic-schedules/source/6037-RESULT.json new file mode 100644 index 0000000000..506af526b6 --- /dev/null +++ b/research/chain-cyclic-schedules/source/6037-RESULT.json @@ -0,0 +1,463 @@ +{ + "balanced_counts": { + "10": [ + "6741578652", + "4679989200", + "6448414170", + "4700560080", + "6294527880", + "4865942100", + "6385100910", + "4722661080", + "6207295440", + "4643982780" + ], + "11": [ + "103966520994", + "102993204930", + "102235358082", + "102396100356", + "103115588532", + "102402283962", + "103208198214", + "101877228420", + "102439987782", + "101658692850", + "102112920888" + ], + "12": [ + "2220683565942", + "1794043350000", + "2059022210256", + "1842284425752", + "2118713742030", + "1778150784600", + "2148960751092", + "1784347776360", + "2108784411468", + "1847908709208", + "2067103426608", + "1755169970184" + ], + "13": [ + "38530109064648", + "38408860362522", + "38446223635872", + "38475075101658", + "38448201397164", + "38451602981064", + "38484193051434", + "38425192810446", + "38484531071454", + "38411027051982", + "38421870715488", + "38393080869468", + "38493387856092" + ], + "14": [ + "808172577659160", + "738965480678544", + "806859422030004", + "739115415609228", + "807265213137306", + "738197487800640", + "806761002071598", + "739759604685612", + "806636233594590", + "739223074696344", + "806774276954982", + "738938125213428", + "805914256360416", + "738570787903116" + ], + "15": [ + "15967720665428760", + "15820957783551510", + "15788984425851960", + "15934680254178450", + "15810983130410730", + "15802243668194484", + "15944844234786480", + "15824729026109070", + "15776887005480630", + "15936644942659890", + "15837022738773180", + "15779022408103500", + "15949999439065080", + "15807619499059170", + "15775007179275030" + ], + "16": [ + "339272283516824898", + "323183981099814048", + "338340164615398368", + "322973236971270144", + "339139546283955048", + "323205275835844512", + "338300184658683312", + "322900118476672128", + "339219853279383120", + "323223061197397152", + "338322310174185408", + "322976845559835840", + "339130993703537328", + "323162234813206560", + "338283049270273200", + "322916868540582336" + ], + "17": [ + "7016362063604527788", + "7016124620940427512", + "7015890054391059354", + "7016139801913433382", + "7016024746503159234", + "7015979867018175186", + "7016001399900224298", + "7016304224858630370", + "7016173243116229224", + "7015870039600124886", + "7016151000374920296", + "7015900942941657882", + "7016208457488359838", + "7015818903463436760", + "7015875711628795836", + "7016037189654896430", + "7016009307249323160" + ], + "18": [ + "152969581193896020474", + "148852970764034116572", + "152611652967963098364", + "149091469951762800864", + "152695385538799979070", + "148754760694466626656", + "152962634941754791164", + "148851121053717208008", + "152611937314074227574", + "149094106358286557952", + "152691506710294634982", + "148755877895351116368", + "152963973275284446552", + "148857056502816052944", + "152609267832933898926", + "149089011851493613296", + "152687241583188218226", + "148756535803306374588" + ], + "19": [ + "3282470615275403212026", + "3282456605652821013744", + "3282457911809211933444", + "3282454399015162642278", + "3282445890280233366108", + "3282471913946175183066", + "3282456851153571631146", + "3282444259434533358324", + "3282462184177270551132", + "3282457273985722142388", + "3282462185829820891812", + "3282458921153208129822", + "3282464319386671032342", + "3282444613604445173292", + "3282447304179273090942", + "3282445846627487841990", + "3282455821348797712692", + "3282449630841513342216", + "3282459628265130152766" + ], + "2": [ + "42", + "0" + ], + "20": [ + "72738274754022182072520", + "71733846909704375251080", + "72719452330999026035280", + "71726672348958875430120", + "72734376396812063927850", + "71736312338184793786296", + "72718278535839307815360", + "71728920944175594879360", + "72733930664075914566480", + "71732854925293824429480", + "72720803859471890262852", + "71727760283617184320560", + "72736722780155887954110", + "71732820291339683577000", + "72716964893906826421080", + "71730254758896201136560", + "72735525106065670954620", + "71734838896716629663760", + "72716669412804600420060", + "71726656003038291603480" + ], + "21": [ + "1605739257460465096761936", + "1605154012766710060292022", + "1604914672883371101374850", + "1605733707134151410815692", + "1605157466037655778241462", + "1604906376516623799054828", + "1605729788339671406423466", + "1605161661655994737719084", + "1604913369345497822783760", + "1605732816568795133107518", + "1605156992393682343071330", + "1604916912896412863735862", + "1605724066746114427290150", + "1605152962139214335184078", + "1604920525580575059184062", + "1605730575723507869888070", + "1605156229299955015009998", + "1604914323215879150876772", + "1605733329135227367381768", + "1605147853904096658262974", + "1604913035436668676724614" + ], + "22": [ + "36134267890536727230107490", + "35866457233917003406472364", + "36134234283284005470480120", + "35866439155728617511401436", + "36134248023133306714202700", + "35866454092337351733569880", + "36134260969595779815129228", + "35866438062058568640687000", + "36134245067636500365355500", + "35866426109716419815193816", + "36134235526833110352161982", + "35866457827501865224002012", + "36134257667914188681176124", + "35866432202204367568058628", + "36134242797988805204258964", + "35866456938459209726519856", + "36134244275951261953547232", + "35866452999425742631850352", + "36134238673992521943878646", + "35866435707989088202861080", + "36134228781599246368330590", + "35866433384449387110571620" + ], + "23": [ + "814029670554340980620640426", + "814029654233143776812602302", + "814029617760444674009405628", + "814029603030339488813195190", + "814029606566209387420648776", + "814029610158589140188293188", + "814029580316245291999017072", + "814029645483718904711321868", + "814029582740587396356587568", + "814029634253225557007940438", + "814029634819682646064986102", + "814029569931838499551352928", + "814029630025893266534244162", + "814029651738295494922196214", + "814029631248756756549675402", + "814029573131519169972588558", + "814029611978715843083153652", + "814029595551686194746741966", + "814029591283593539455391430", + "814029559626145648882814400", + "814029589229041484936154642", + "814029585448067484582598878", + "814029592295577372023597256" + ], + "24": [ + "18584382711354995772465208614", + "18508433917078281904723230192", + "18581870644389769248858566112", + "18509648102483541498446425488", + "18582939771653343294507442608", + "18507726393611424625062662544", + "18583974766812475751585240088", + "18508263874625401967877175872", + "18582272331059716825308348654", + "18509810503330218865203488304", + "18582545845216340911708417512", + "18507560444056980161899901856", + "18584374581232742949002000388", + "18508432748358987079985220768", + "18581867484432568572481241544", + "18509642067885542652377736432", + "18582946687807248637181630844", + "18507727558845523592040175872", + "18583977627206087830244983512", + "18508269849166417629004124400", + "18582264745022966518627050768", + "18509809335216503466913261344", + "18582542625848888564747785656", + "18507553468876187719360955088" + ], + "3": [ + "270", + "24", + "0" + ], + "4": [ + "2370", + "216", + "432", + "0" + ], + "5": [ + "15456", + "5340", + "6390", + "3000", + "2970" + ], + "6": [ + "216774", + "40320", + "96954", + "60228", + "84888", + "22320" + ], + "7": [ + "1636956", + "1102374", + "1231314", + "1119006", + "1214262", + "869862", + "1052352" + ], + "8": [ + "29455074", + "14150304", + "21697992", + "13892784", + "24824112", + "13586496", + "20537808", + "12071664" + ], + "9": [ + "372669012", + "297659664", + "292097772", + "344049198", + "311287158", + "283984218", + "342426744", + "285037542", + "290939742" + ] + }, + "distinct_nonzero_certificate": [ + { + "argmax_c": 1, + "argmin_c": 2, + "m": 3 + }, + { + "argmax_c": 2, + "argmin_c": 3, + "m": 4 + }, + { + "argmax_c": 2, + "argmin_c": 4, + "m": 5 + }, + { + "argmax_c": 2, + "argmin_c": 5, + "m": 6 + }, + { + "argmax_c": 2, + "argmin_c": 5, + "m": 7 + }, + { + "argmax_c": 4, + "argmin_c": 7, + "m": 8 + }, + { + "argmax_c": 3, + "argmin_c": 5, + "m": 9 + }, + { + "argmax_c": 2, + "argmin_c": 9, + "m": 10 + }, + { + "argmax_c": 6, + "argmin_c": 9, + "m": 11 + }, + { + "argmax_c": 6, + "argmin_c": 11, + "m": 12 + }, + { + "argmax_c": 12, + "argmin_c": 11, + "m": 13 + }, + { + "argmax_c": 4, + "argmin_c": 5, + "m": 14 + }, + { + "argmax_c": 12, + "argmin_c": 14, + "m": 15 + }, + { + "argmax_c": 8, + "argmin_c": 7, + "m": 16 + }, + { + "argmax_c": 7, + "argmin_c": 13, + "m": 17 + }, + { + "argmax_c": 12, + "argmin_c": 5, + "m": 18 + }, + { + "argmax_c": 5, + "argmin_c": 7, + "m": 19 + }, + { + "argmax_c": 12, + "argmin_c": 19, + "m": 20 + }, + { + "argmax_c": 3, + "argmin_c": 5, + "m": 21 + }, + { + "argmax_c": 6, + "argmin_c": 9, + "m": 22 + }, + { + "argmax_c": 1, + "argmin_c": 19, + "m": 23 + }, + { + "argmax_c": 12, + "argmin_c": 23, + "m": 24 + } + ], + "marker": "PASS_CHAIN_BALANCED_MULTIPLICITIES", + "max_m": 24 +} diff --git a/research/chain-cyclic-schedules/source/LICENSE b/research/chain-cyclic-schedules/source/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/chain-cyclic-schedules/source/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/chain-cyclic-schedules/source/chain-tariff-PROOF.md b/research/chain-cyclic-schedules/source/chain-tariff-PROOF.md new file mode 100644 index 0000000000..d56fe647b0 --- /dev/null +++ b/research/chain-cyclic-schedules/source/chain-tariff-PROOF.md @@ -0,0 +1,213 @@ +# Complete count vectors for the unsigned depth-three chain + +## Contract and predecessor results + +Let R be a nonzero unital ring of exact characteristic m >= 2. Four distinct +registers x,z1,z2,y contain arbitrary data in compatible R-modules. The source +x is immutable. The only complete operations, written as letters, are + +```text +1: z1 += B1 x +2: z2 += B2 z1 +3: y += B3 z2 +``` + +Each map is arbitrary and R-linear. Correctness means restoring z1,z2 and +adding c B3 B2 B1 x to y for every admissible map and dirty initial state, +where 1 <= c < m. No inverse call, extra register, direct composite operation +or free data operation is available. A call includes its own scratch and head +restoration. A scalar price p_l > 0 is fixed for each complete operation. +Word-dependent instruction, admission and routing costs are additional. + +Nick Petalas's [PR4249](https://github.com/CrocSwap/integer-mult-bounds/pull/4249), +head `03b8a19d7442edebb3565064631f6ca2408d731e`, proves the unit-length law +3m except at (m,c)=(2,1),(3,2),(4,3), where it is 4m. Its interval-count +identity and balanced construction are recalled below to make this proof +self-contained. This contribution classifies the complete attainable count +set and gives its unequal-price and multiplicity consequences. The binary +weighted result already follows from the stronger arbitrary-workspace bound +in ToikY's [PR1662](../ut4-central-tariff-relaxation/README.md), and is not claimed new. + +## The count classification + +For a word w, let n_l count its occurrences of l. Define P(m,c) by + +```text +P(2,1) = {(2,4,2)} +P(3,2) = {(6,3,3), (3,6,3), (3,3,6)} +P(4,3) = {(8,4,4), (4,8,4), (4,4,8)} +P(m,c) = {(m,m,m)} in every other case. +``` + +**Theorem 1.** A nonnegative integer count vector n is attained by a correct +word if and only if every n_l is divisible by m and n dominates some vector +in P(m,c) coordinate by coordinate. Thus P is exactly the Pareto-minimal +set, including the assertion for words of arbitrary length. + +Let N_ij be the number of scattered subwords i(i+1)...j in w. Appending +letter j adds N_i,j-1 to N_ij for i=5 except m=6, choose a unit 2<=a<=m/2 and +`t=-a^(-1) mod m`, so 1<=t<=m-2. Such a unit is a=2 for odd m; +a=m/2-1 for m divisible by four; and a=m/2-2 for m=2 mod four with m>=10. +The latter two are odd, and their gcd with m divides respectively two and +four. For (6,5), use the credited word `111122133232123233`. +Direct tracking in the displayed family gives + +```text +N_12=m(m-1), N_23=m(m-t), N_13=at mod m. +``` + +Finally, appending m copies of any letter is an identity on all registers. +Starting from an attained minimal profile, this pads each coordinate by +any desired nonnegative multiple of m. This proves sufficiency for every +vector in Theorem 1, not merely the bounded vectors enumerated below. QED. + +In characteristic zero the single-letter conditions force every count to +zero, so no unsigned word realizes a nonzero target. The zero target has the +empty optimum word and is outside Theorem 1's count classification. + +## Exact tariff and optimal-word multiplicities + +Write S=p1+p2+p3. Positive prices and Theorem 1 imply + +```text +C(2,1) = 2S + 2p2 +C(3,2) = 3S + 3 min(p1,p2,p3) +C(4,3) = 4S + 4 min(p1,p2,p3) +C(m,c) = mS otherwise. +``` + +Every optimum has a profile in P. Any strictly larger feasible vector costs +strictly more. Equal cheapest prices allow the corresponding minimal +profiles to tie. No arbitrarily long cheap-operation word can evade this +bound. The binary formula is the credited PR1662 theorem in this chain +model; the new cases are the complete characteristic-three/four alternatives +and the resulting all-characteristic count classification. + +The exact numbers of words at the three single-doubling profiles, in order +(first, middle, last doubled), are + +```text +(m,c)=(2,1): (0, 4, 0) +(m,c)=(3,2): (108, 180, 108) +(m,c)=(4,3): (3520, 4288, 3520). +``` + +Thus in characteristic three the number of minimum-price words is +108 times the number of cheapest outer operations, plus 180 if the middle +operation is cheapest. In characteristic four replace 108 by 3520 and 180 +by 4288. There are four binary minimum-price words for all positive prices. +These are finite exact counts, proved by the two exhaustive enumerations +below. They count literal words, without quotienting rotations or relabeling. + +## Finite certificate and its completeness + +The first engine fixes the counts (i,j,k) and stores a table indexed by +(d,e,f)=(N_12,N_23,N_13) modulo m. The single-letter residues are already +known from (i,j,k), so only m^3 entries are needed. The empty word initializes +one entry. A final 1 leaves (d,e,f) unchanged. A final 2 adds i to d. A final +3 adds j to e and d to f. Adding predecessor multiplicities gives every +literal word once, according to its unique final letter. The sum at each +count vector is checked against the multinomial coefficient. + +For m=2,3,4, the engine covers every count vector in [0,2m]^3, for every +nonzero target residue. It compares nonemptiness to Theorem 1. This is +finite corroboration of the infinite count cone, not its universal proof. + +The independent engine chooses the positions of the 1s, then those of the +2s among the remaining positions; the rest are 3s. It uses ordinary integer +pair and triple counts, then reduces only at the end. It exhausts the +balanced profile and all three single-doubling profiles. At the balanced +profiles, the possible restored target residues are {0}, {0,1}, {0,1,2} +for m=2,3,4. This proves the exceptional balanced exclusions. The two engines +agree on every residue multiplicity, not just nonemptiness or the headline +exception count. Each independent family has exactly +`binomial(i+j+k,i) binomial(j+k,j)` words. + +An additional independent Dijkstra search on the full UT4(Z/m) group checks +all 64 integer price triples in {1,2,3,4}^3 for m=2,3,4 and every nonzero +target coefficient. Its 384 minima agree with the constructed tariff. This +search permits arbitrary word lengths and does not use the Pareto formula. +Positive weights ensure each settled state is processed once; at most three +relaxations per state bound the heap-removal loop by 3m^6+1. + +All scientific checks use explicit errors and remain enabled under -O. +The verifier prints a generated receipt bound to every package file and live +input SHA-256. No receipt is handwritten. It writes no files. + +## Implementation bounds + +The verifier is standalone Python using the standard library. Control flow +is iterative. The count DP is restricted to 2<=m<=4, with at most 46,656 +integer slots. Its independent census considers at most 900,900 words per +profile, each of length at most 16. Constructor checks use m<=32; exported +helpers reject m>128 and words longer than 1,536. Dense replay uses fixed +2x2 maps and four distinct two-coordinate registers. Functions remain below +60 physical lines, and every DP count has a multinomial invariant. + +Power-of-ten rule 3 has a managed-runtime deviation: Python allocates integer +objects and temporary tuples during these bounded computations. The stated +finite domains bound live collections and integer bit lengths. The largest +DP total counts words of length 24 over three letters, hence is below 3^24. +The weighted oracle has at most 4^6=4,096 distance slots and 12,289 +heap removals per run. There are no recursion, background tasks, dynamic +evaluation or external solver calls. Warnings-as-errors and the ordinary and optimized full replays +are the applicable interpreter checks. Ruff is not installed in the supplied +environment; no external static analyzer or type checker was run. An allocation-free implementation +would be needed only to embed the verifier in a runtime requiring fixed +allocation; it is not part of this finite certificate. diff --git a/research/chain-cyclic-schedules/source/depth5-README.md b/research/chain-cyclic-schedules/source/depth5-README.md new file mode 100644 index 0000000000..90f3d537de --- /dev/null +++ b/research/chain-cyclic-schedules/source/depth5-README.md @@ -0,0 +1,150 @@ +# Shortest unsigned depth-five chain connector: small m and 9 <= m <= 20 + +This package answers open question 2 of +[#4263](https://github.com/CrocSwap/integer-mult-bounds/pull/4263) for depth +five in a bounded range of characteristics. The contribution was produced by +Nick Petalas. + +The complete calls are `z_l += B_l z_{l-1}` for l = 1, ..., 5, with x = z_0 +immutable and z_1, ..., z_4 and y = z_5 holding arbitrary dirty data. The maps +are arbitrary and the coefficients lie in a nonzero unital ring of exact +characteristic m. For a nonzero residue c the word must restore z_1, ..., z_4 +and add `c B5 B4 B3 B2 B1 x` to y. There are no sign or inverse calls. + +| m | 2 | 3 | 4 | 5 to 8 | 9 to 20 | +|---|---:|---:|---:|---|---:| +| shortest length | 16 = 8m | 24 = 8m | 28 (c = 1, 3), 24 (c = 2) | 5m for the listed c only | 5m for every c | +| evidence | exhaustive BFS | exhaustive BFS | exhaustive BFS (opt-in) + words | witnesses | witnesses | + +- **m = 2, 3:** the minimum is 8m, well above the per-call floor 5m. At depth + four the same characteristics cost 6m (#4249). +- **m = 4:** the minimum depends on c. It is 24 = 6m for c = 2 and 28 = 7m for + c = 1 and c = 3. Shortest words are recorded for each c; the optimal ones read + back from the search double calls 2 and 3 (c = 1, 3) or call 3 (c = 2). +- **m = 5 to 8:** the floor 5m is attained for (5, 1), (6, 3), (7, 1..4) and + (8, 1..4, 6). For the other eleven residues in this range the bounded search + found no 5m word; that is a **search failure**, not a lower bound. +- **9 <= m <= 20:** the floor 5m is attained for every nonzero c (162 pairs). + +So the depth-five premium is larger than at depth four and lasts at least to +m = 4 for every residue. It is gone for every residue from m = 9 to m = 20. +Whether it persists for some residues at m = 5 to 8 is open. + +Claim types: **exhaustive finite computation** for the minima at m = 2, 3, 4 +(the m = 4 lower bound is an opt-in run, see below), and a **finite +certificate** for each listed witness. No all-m theorem, no new κ, no supplier +admission and no change to the selected frontier. + +## Argument + +**Lemma 1 (floor; #4249).** Write N[i..j] for the number of scattered +occurrences of the subword i(i+1)...j in the word. The word is correct for c +iff the product of the generators I + e_{l,l+1} in UT6(Z/m) equals +I + c e_{1,6}, iff every N[i..j] is 0 mod m except N[1..5], which is c mod m. +Each call therefore appears a positive multiple of m times, so every correct +word has at least 5m calls, and lengths between multiples of m are impossible. + +A word with exactly m copies of each call that meets the interval conditions +therefore has the shortest length 5m. + +**Exact minima.** Breadth-first search from the identity over all +m^15 elements of UT6(Z/m), with the five generators as edges, gives the +distance to every I + c e_{1,6}. Any positive word reaching that element is a +correct word, and conversely, so the BFS distance is the exact minimum. The +same routine at depth four reproduces #4249's 12, 18, 20 and 25 at m = 2..5 as +a positive control. + +**Observation.** A cyclic rotation of a correct word is correct: if +w = a v then v a = a^{-1} (a v) a, and I + c e_{1,6} is central. Rotations +were not used to produce witnesses. + +## Evidence and reproduction + +From the repository root, with CPython 3.12 and numpy: + +```sh +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -W error -B research/depth5-chain-connector/verify.py +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -O -W error -B research/depth5-chain-connector/verify.py +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -B scripts/research_package.py --package research/depth5-chain-connector +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -B scripts/check_research_commit.py --package research/depth5-chain-connector --check-source-history +``` + +Any CPython 3.12 with numpy can replace the local interpreter path. The +verifier writes no files. It prints a JSON receipt with the SHA-256 of every +package file and input, then +`PASS_DEPTH5_CHAIN_CONNECTOR bfs_cases=6 witnesses=173 m4_words=3`. It checks: + +- BFS minima: depth five at m = 2, 3; depth four at m = 2..5. +- For every witness: length 5m and exactly m copies of each call; the interval + conditions by one chronological counting pass; separately, the UT6(Z/m) + matrix product; and two literal replays with dirty registers in (Z/m)^2 and + random, generally noncommuting 2x2 maps, checking that z_1..z_4 are restored + and y gains exactly c B5 B4 B3 B2 B1 x. +- Full rows: every c from 1 to m - 1 is present for 9 <= m <= 20. +- The three m = 4 words, at lengths 28, 24, 28, by the same three checks. +- Five rejection controls on the (m, c) = (14, 1) witness: a wrong coefficient, + a dropped call, a swap of adjacent noncommuting calls, one relabelled call + and one extra call. + +The m = 4 lower bounds need a BFS over 4^15 ≈ 1.07 × 10^9 elements. It takes +about 9 minutes and 20 GB of memory, so it is opt-in and not a registered +check: + +```sh +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -W error -B research/depth5-chain-connector/verify.py --exhaustive-m4 +``` + +It asserts the distances {1: 28, 2: 24, 3: 28}. This path ran to completion +locally (CPython 3.12.15, numpy 2.5.4, macOS arm64) in 8 min 52 s and printed +`PASS_DEPTH5_CHAIN_CONNECTOR bfs_cases=7`. An equivalent standalone BFS gave the +same distances and saved the distance table from which the m = 4 words were +read back. Hosted CI does not run this path, so the m = 4 lower bounds are +local evidence that a reviewer can rerun with the command above. + +[search_witnesses.c](search_witnesses.c) is the simulated-annealing search that +found the 5m witnesses (`cc -O2 -o anneal search_witnesses.c -lm`, then +`./anneal 5 M C SEED TRIES SWEEPS`). It is not part of the replay; the verifier +checks the words themselves. Three rounds were run: 40 restarts of 3 × 10^6 +sweeps for 4 <= m <= 20, then 60 × 6 × 10^6 and 150 × 8 × 10^6 on the +residues still missing. + +## Limitations + +The m = 4 lower bounds rest on the opt-in exhaustive run described above, which hosted CI does not repeat. The +missing residues at m = 5 to 8 and every m > 20 are not decided. Each witness +is a finite certificate for its own (m, c); no all-m theorem is claimed. +Independent human and formal proof-kernel review are unclaimed. Every call +carries its complete implementation price. Admission, dispatch, routing of the +four intermediates and word-dependent physical costs are extra. No supplier +caller, precision analysis, outer multiplication theorem or new κ is supplied. + +## Attribution and scope + +The chain model, the interval-count reduction, the floor argument and the +depth-four minima at m = 2..5 come from +[#4249](https://github.com/CrocSwap/integer-mult-bounds/pull/4249); the +depth-four floor for 6 <= m <= 32 and the depth-five question come from +[#4263](https://github.com/CrocSwap/integer-mult-bounds/pull/4263), whose +annealing objective search_witnesses.c adapts. Ross Richardson's +[#943/#934 lineage](../universal-connector-boundary/README.md) supplies the +complete-call dirty-connector interface. The new results here are the +depth-five minima at m = 2, 3, 4, the residue dependence at m = 4, and the 173 +floor witnesses. Subword counts, unitriangular matrices and BFS are classical +tools; no novelty is claimed for them. Exact pins are in +[SOURCES.json](SOURCES.json). + +The `connector-alphabet-change` card is explicitly changed to this side +question, as in #4249 and #4263. The alphabet stays unsigned and complete; only +the chain gets one more call. Apache-2.0. + +## Open next questions + +The structured questions in [TASK.json](TASK.json) give first steps and +blockers. + +1. What are the exact depth-five minima at m = 5, 6, 7, 8 for the eleven + residues with no 5m witness here? A meet-in-the-middle search over balanced + prefixes and suffixes could exclude 5m without the full m^15 BFS. +2. Is the depth-five minimum exactly 5m for every m >= 9? +3. Why does the m = 4 minimum depend on c? A 2-adic obstruction might be + provable by hand and might recur at m = 8. diff --git a/research/chain-cyclic-schedules/source/depth6-README.md b/research/chain-cyclic-schedules/source/depth6-README.md new file mode 100644 index 0000000000..33662ab27a --- /dev/null +++ b/research/chain-cyclic-schedules/source/depth6-README.md @@ -0,0 +1,182 @@ +# Exactly ten shortest binary depth-six chain schedules + +This contribution was produced by Nick Petalas. The new result is an +**exhaustive finite classification** of shortest unsigned dirty-chain +schedules at depth six in characteristic two: + +```text +There are exactly ten shortest words. +They are the ten distinct cyclic rotations of (1234565432)^2. +None has adjacent commuting calls. +``` + +The length 20 is already implied by Yifan Kang's +[CNOT-Optimal Circuit Synthesis, Proposition 3.1](https://math.mit.edu/documents/rsi/2023KangY.pdf), +which proves the directed-path minimum `4n-8` on n registers. It is credited +prior work, not the original result here. The new classification shows that +this minimal interface has only cyclic starting-position freedom. No local +swap of commuting neighbors can retime a shortest schedule. + +## Interface and algebraic reduction + +A letter l means the complete call `z_l += B_l z_(l-1)`, for l = 1,...,6. +The source `x = z_0` is immutable. The five intermediates `z_1,...,z_5` and +the target `y = z_6` hold arbitrary initial data. The maps `B_1,...,B_6` are +arbitrary compatible linear maps over a nonzero unital ring of +characteristic two. Every intermediate must be restored, and the only +output change must be + +```text +y += B_6 B_5 B_4 B_3 B_2 B_1 x. +``` + +There are no inverse, fused, scaling, copy or extra-storage calls. Length +counts complete calls with equal unit prices. This is the chain model of +[#4263](https://github.com/CrocSwap/integer-mult-bounds/pull/4263) and +[#4281](https://github.com/CrocSwap/integer-mult-bounds/pull/4281), with one +additional stage. This package provides no new kappa or supplier admission. + +Use #4281's interval-count reduction. For `1 <= i <= j <= 6`, let `N[i..j]` +count scattered copies of `i(i+1)...j` in the chronological word. The +coefficient of the initial `z_(i-1)` in the final `z_j` is + +```text +N[i..j] B_j B_(j-1) ... B_i. +``` + +Induction on calls proves this formula without commuting maps. The word is +universally correct precisely when `N[1..6]` is odd and every other interval +count is even. The expansion proves sufficiency. For necessity, take all +maps to be identity and vary the initial registers independently over F2. +Any wrong interval coefficient changes a wrong register or source +coefficient. + +Equivalently, multiply the adjacent transvections `g_l = I + e_(l-1,l)` +chronologically in `UT7(F2)`. Their strict upper-triangular coordinates are +exactly the interval parities. The target is `I + e_(0,6)`. Thus universally +correct shortest schedules are exactly the labelled shortest paths to this +target in a graph of `2^21 = 2,097,152` possible states. Arbitrary-map +correctness does not require the actual maps to commute. + +## Complete shortest-path classification + +[RESULT.json](RESULT.json) lists all ten words, the exact path count, the +minimum distance and every BFS layer size through level 20. The verifier +starts only at identity and applies all six generators to every state in +each layer. It uses no symmetry or interval-based pruning. A visited array +removes only states reached at no greater distance. + +The target is absent in layers 0 through 19, which contain **1,197,817 +distinct states**, and first appears at level 20. The full layer 20 has +**338,668** states. These are states, not word counts; later group states are +not explored. + +The new counting step keeps `ways[s]`, the exact number of shortest labelled +paths to state s. Initially only identity has count one. Every edge from +level d-1 to level d contributes its source count, including edges to a +state already discovered in that same level. Edges to earlier levels do +not contribute. Induction on d proves that this counts every shortest word +once. Counts fit in uint64 because `6^20 < 2^64`. The target count is **10**. + +A separate backward traversal starts at the target and follows every edge +that decreases the BFS distance. It uses full 7-by-7 matrix multiplication, +rather than the vectorized transition formula. An explicit bounded +worklist enumerates the ten actual words, independently agreeing with the +forward count. The sorted set equals the ten distinct cyclic rotations of + +```text +12345654321234565432 +``` + +Every word has call-count vector `(2,4,4,4,4,2)`. Every adjacent pair of +letters differs by one. As universal call operations, distinct chain +generators commute exactly when their indices differ by at least two, so +no shortest word permits a local commuting-neighbor swap. There is one +cyclic-rotation class and ten classes +under commuting-neighbor swaps. + +## Verification and reproduction + +The verifier checks each of the ten words by integer chronological subword +counts and by full binary matrix products. Across all ten words, it also +checks **81,920** scalar combinations of six binary maps and seven arbitrary +dirty values, plus **8,960** two-coordinate replays. The latter use fourteen +initial basis vectors for each of 64 deterministic map tuples per word, +including noncommuting and singular maps. The universal statement rests on +the algebraic reduction, not this finite map sample. + +A full-matrix oracle checks each generator on zero and all 21 coordinate +basis states, giving **132 comparisons**. Both transition formulas are +affine over F2, so these determine every transition on the whole state space. +Six rejection controls cover a dropped final call, dropped first call, +changed final call, unrestored forward-only word, swapped noncommuting +neighbors, and unknown generator. + +From the repository root, with CPython 3.12 and NumPy 2.5.4: + +```sh +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -W error -B research/depth6-binary-chain/verify.py +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -O -W error -B research/depth6-binary-chain/verify.py +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -B scripts/research_package.py --package research/depth6-binary-chain +/Users/nick/git/integer-mult-bounds/.venv/bin/python3.12 -B scripts/check_research_commit.py --package research/depth6-binary-chain --check-source-history +``` + +Any CPython 3.12 interpreter with the declared NumPy version can replace the +local path. Both registered commands perform the complete count and path +enumeration. No opt-in mathematical replay is needed. The verifier writes +nothing. It prints a generated JSON receipt bound to every package file and +live input SHA-256, then + +```text +PASS_DEPTH6_BINARY_CHAIN shortest_words=10 rotation_classes=1 distance=20 oracle=132 scalar=81920 matrix=8960 controls=6 +``` + +## Limits + +This classifies only shortest depth-six schedules in characteristic two +under the stated complete-call alphabet. It does not classify longer words, +other characteristics or depths, extra storage, or a different target. +No universal multiplication barrier follows from this finite rigidity. + +BFS allocates fixed main buffers at initialization: a 2 MiB visited array, +a 16 MiB path-count array and two 8 MiB state arrays. Each temporary +transition processes at most `2^18` states. BFS has at most 20 levels, six +generators and eight chunks per generator. Backward enumeration has at most +20 levels, at most 100 retained paths and six predecessors per path. The +actual target has ten paths. No recursion, subprocess, network access or +file write occurs. Bounded Python/NumPy temporary allocation is a +managed-runtime deviation from fixed-allocation operation. Warning-strict +normal/optimized replays, the matrix oracle and explicit exception +contracts supply local diagnostics; no compiled-language type checker is used. + +No physical caller, routing, dispatch, precision, tape/storage, recursive +supplier or outer multiplication proof is supplied. Independent human and +formal proof-kernel review are unclaimed. + +## Open next questions + +1. Can a structural proof classify all shortest schedules without the + finite state search? Start with Kang's minimum count vector and derive + the forced chronological constraints. This could explain the rigidity + and determine whether it persists at other depths. +2. What is the least extra call budget that permits a nontrivial commuting + retiming freedom after cancelling adjacent equal calls? Begin with + length 22, since correct words have even length. This could quantify the + cost of chronology flexibility; a redundant cancelling pair alone would + not answer the question. +3. Does a fully paid supplier consumer use this six-stage composition? + Name actual maps and routing/restoration costs before interpreting the + abstract schedules as recursive savings. + +## Credit + +Yifan Kang supplies the known directed-path minimum and bridge construction +in Proposition 3.1. The original finite contribution here is the complete +ten-schedule classification and its retiming consequence. Nick Petalas's +#4249/#4263/#4281 supply the chain model, earlier depth results and +interval-count/UT reduction used here. Ryanson Jonathan's +[#4418](https://github.com/CrocSwap/integer-mult-bounds/pull/4418) settles +the separate eleven open depth-five residues. Those results are cited, not +re-audited. Ross Richardson's #943/#934 lineage supplies the complete-call +dirty-connector interface. BFS and shortest-path counting are classical +tools. Apache-2.0. From c6dfa49448b5968a503875dcc6fe5a6d10495356 Mon Sep 17 00:00:00 2001 From: SHIN09-git Date: Wed, 28 Oct 2026 12:56:49 +0800 Subject: [PATCH 2/5] Classify cyclic periods of balanced depth-three chain schedules --- research/chain-cyclic-schedules/EXPECTED.json | 5362 +++++++++++++++++ research/chain-cyclic-schedules/OVERLAP.json | 86 + research/chain-cyclic-schedules/PROOF.md | 204 + research/chain-cyclic-schedules/README.md | 174 + research/chain-cyclic-schedules/SOURCES.json | 76 + research/chain-cyclic-schedules/TASK.json | 68 + research/chain-cyclic-schedules/VALIDATION.md | 63 + research/chain-cyclic-schedules/VERIFY.json | 46 + .../chain-cyclic-schedules/audit_mutations.py | 92 + research/chain-cyclic-schedules/oracle.py | 119 + research/chain-cyclic-schedules/periods.py | 89 + research/chain-cyclic-schedules/verify.py | 140 + 12 files changed, 6519 insertions(+) create mode 100644 research/chain-cyclic-schedules/EXPECTED.json create mode 100644 research/chain-cyclic-schedules/OVERLAP.json create mode 100644 research/chain-cyclic-schedules/PROOF.md create mode 100644 research/chain-cyclic-schedules/README.md create mode 100644 research/chain-cyclic-schedules/SOURCES.json create mode 100644 research/chain-cyclic-schedules/TASK.json create mode 100644 research/chain-cyclic-schedules/VALIDATION.md create mode 100644 research/chain-cyclic-schedules/VERIFY.json create mode 100644 research/chain-cyclic-schedules/audit_mutations.py create mode 100644 research/chain-cyclic-schedules/oracle.py create mode 100644 research/chain-cyclic-schedules/periods.py create mode 100644 research/chain-cyclic-schedules/verify.py diff --git a/research/chain-cyclic-schedules/EXPECTED.json b/research/chain-cyclic-schedules/EXPECTED.json new file mode 100644 index 0000000000..d40ee365c8 --- /dev/null +++ b/research/chain-cyclic-schedules/EXPECTED.json @@ -0,0 +1,5362 @@ +{ + "controls": [ + "naive_total_over_length", + "missing_even_odd_pair_gate", + "missing_cubic_shift", + "wrong_cubic_shift_sign", + "missing_target_divisibility", + "all_unit_words_primitive", + "allow_unit_repetition_at_nine", + "missing_totient_weight", + "mobius_sign_reversed", + "nonunit_repetition_three_only", + "larger_unit_exception" + ], + "derived_from_source_counts_through": 24, + "dp_moduli": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ], + "literal": { + "cases": 15, + "rotations": 536472, + "scalar_matrix_comparisons": 1776, + "words": 793182 + }, + "period_counts": { + "1": [ + { + "cyclic_orbits": 2, + "exact_repetitions": { + "1": 6 + }, + "fixed": { + "1": 6 + }, + "primitive_words": 6, + "target": 0 + } + ], + "10": [ + { + "cyclic_orbits": 224719294, + "exact_repetitions": { + "1": 6741578610, + "10": 0, + "2": 0, + "5": 42 + }, + "fixed": { + "1": 6741578652, + "10": 0, + "2": 0, + "5": 42 + }, + "primitive_words": 6741578610, + "target": 0 + }, + { + "cyclic_orbits": 155999640, + "exact_repetitions": { + "1": 4679989200, + "10": 0, + "2": 0, + "5": 0 + }, + "fixed": { + "1": 4679989200, + "10": 0, + "2": 0, + "5": 0 + }, + "primitive_words": 4679989200, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 214947139, + "exact_repetitions": { + "1": 6448414170, + "10": 0, + "2": 0, + "5": 0 + }, + "fixed": { + "1": 6448414170, + "10": 0, + "2": 0, + "5": 0 + }, + "primitive_words": 6448414170, + "target": 2 + }, + { + "cyclic_orbits": 156685336, + "exact_repetitions": { + "1": 4700560080, + "10": 0, + "2": 0, + "5": 0 + }, + "fixed": { + "1": 4700560080, + "10": 0, + "2": 0, + "5": 0 + }, + "primitive_words": 4700560080, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 209817596, + "exact_repetitions": { + "1": 6294527880, + "10": 0, + "2": 0, + "5": 0 + }, + "fixed": { + "1": 6294527880, + "10": 0, + "2": 0, + "5": 0 + }, + "primitive_words": 6294527880, + "target": 4 + }, + { + "cyclic_orbits": 162198070, + "exact_repetitions": { + "1": 4865942100, + "10": 0, + "2": 0, + "5": 0 + }, + "fixed": { + "1": 4865942100, + "10": 0, + "2": 0, + "5": 0 + }, + "primitive_words": 4865942100, + "target": 5 + }, + { + "cyclic_orbits": 212836697, + "exact_repetitions": { + "1": 6385100910, + "10": 0, + "2": 0, + "5": 0 + }, + "fixed": { + "1": 6385100910, + "10": 0, + "2": 0, + "5": 0 + }, + "primitive_words": 6385100910, + "target": 6 + }, + { + "cyclic_orbits": 157422036, + "exact_repetitions": { + "1": 4722661080, + "10": 0, + "2": 0, + "5": 0 + }, + "fixed": { + "1": 4722661080, + "10": 0, + "2": 0, + "5": 0 + }, + "primitive_words": 4722661080, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 206909848, + "exact_repetitions": { + "1": 6207295440, + "10": 0, + "2": 0, + "5": 0 + }, + "fixed": { + "1": 6207295440, + "10": 0, + "2": 0, + "5": 0 + }, + "primitive_words": 6207295440, + "target": 8 + }, + { + "cyclic_orbits": 154799426, + "exact_repetitions": { + "1": 4643982780, + "10": 0, + "2": 0, + "5": 0 + }, + "fixed": { + "1": 4643982780, + "10": 0, + "2": 0, + "5": 0 + }, + "primitive_words": 4643982780, + "target": 9, + "unit_repeated_words": 0 + } + ], + "11": [ + { + "cyclic_orbits": 3150500638, + "exact_repetitions": { + "1": 103966520988, + "11": 6 + }, + "fixed": { + "1": 103966520994, + "11": 6 + }, + "primitive_words": 103966520988, + "target": 0 + }, + { + "cyclic_orbits": 3121006210, + "exact_repetitions": { + "1": 102993204930, + "11": 0 + }, + "fixed": { + "1": 102993204930, + "11": 0 + }, + "primitive_words": 102993204930, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 3098041154, + "exact_repetitions": { + "1": 102235358082, + "11": 0 + }, + "fixed": { + "1": 102235358082, + "11": 0 + }, + "primitive_words": 102235358082, + "target": 2, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 3102912132, + "exact_repetitions": { + "1": 102396100356, + "11": 0 + }, + "fixed": { + "1": 102396100356, + "11": 0 + }, + "primitive_words": 102396100356, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 3124714804, + "exact_repetitions": { + "1": 103115588532, + "11": 0 + }, + "fixed": { + "1": 103115588532, + "11": 0 + }, + "primitive_words": 103115588532, + "target": 4, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 3103099514, + "exact_repetitions": { + "1": 102402283962, + "11": 0 + }, + "fixed": { + "1": 102402283962, + "11": 0 + }, + "primitive_words": 102402283962, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 3127521158, + "exact_repetitions": { + "1": 103208198214, + "11": 0 + }, + "fixed": { + "1": 103208198214, + "11": 0 + }, + "primitive_words": 103208198214, + "target": 6, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 3087188740, + "exact_repetitions": { + "1": 101877228420, + "11": 0 + }, + "fixed": { + "1": 101877228420, + "11": 0 + }, + "primitive_words": 101877228420, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 3104242054, + "exact_repetitions": { + "1": 102439987782, + "11": 0 + }, + "fixed": { + "1": 102439987782, + "11": 0 + }, + "primitive_words": 102439987782, + "target": 8, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 3080566450, + "exact_repetitions": { + "1": 101658692850, + "11": 0 + }, + "fixed": { + "1": 101658692850, + "11": 0 + }, + "primitive_words": 101658692850, + "target": 9, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 3094330936, + "exact_repetitions": { + "1": 102112920888, + "11": 0 + }, + "fixed": { + "1": 102112920888, + "11": 0 + }, + "primitive_words": 102112920888, + "target": 10, + "unit_repeated_words": 0 + } + ], + "12": [ + { + "cyclic_orbits": 61685660631, + "exact_repetitions": { + "1": 2220683349168, + "12": 0, + "2": 216774, + "3": 0, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 2220683565942, + "12": 0, + "2": 216774, + "3": 0, + "4": 0, + "6": 0 + }, + "primitive_words": 2220683349168, + "target": 0 + }, + { + "cyclic_orbits": 49834537500, + "exact_repetitions": { + "1": 1794043350000, + "12": 0, + "2": 0, + "3": 0, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 1794043350000, + "12": 0, + "2": 0, + "3": 0, + "4": 0, + "6": 0 + }, + "primitive_words": 1794043350000, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57195062516, + "exact_repetitions": { + "1": 2059022169936, + "12": 0, + "2": 40320, + "3": 0, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 2059022210256, + "12": 0, + "2": 40320, + "3": 0, + "4": 0, + "6": 0 + }, + "primitive_words": 2059022169936, + "target": 2 + }, + { + "cyclic_orbits": 51174567382, + "exact_repetitions": { + "1": 1842284425752, + "12": 0, + "2": 0, + "3": 0, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 1842284425752, + "12": 0, + "2": 0, + "3": 0, + "4": 0, + "6": 0 + }, + "primitive_words": 1842284425752, + "target": 3 + }, + { + "cyclic_orbits": 58853162328, + "exact_repetitions": { + "1": 2118713642748, + "12": 0, + "2": 96912, + "3": 2328, + "4": 0, + "6": 42 + }, + "fixed": { + "1": 2118713742030, + "12": 0, + "2": 96954, + "3": 2370, + "4": 0, + "6": 42 + }, + "primitive_words": 2118713642748, + "target": 4 + }, + { + "cyclic_orbits": 49393077350, + "exact_repetitions": { + "1": 1778150784600, + "12": 0, + "2": 0, + "3": 0, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 1778150784600, + "12": 0, + "2": 0, + "3": 0, + "4": 0, + "6": 0 + }, + "primitive_words": 1778150784600, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 59693355870, + "exact_repetitions": { + "1": 2148960690864, + "12": 0, + "2": 60228, + "3": 0, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 2148960751092, + "12": 0, + "2": 60228, + "3": 0, + "4": 0, + "6": 0 + }, + "primitive_words": 2148960690864, + "target": 6 + }, + { + "cyclic_orbits": 49565216022, + "exact_repetitions": { + "1": 1784347776144, + "12": 0, + "2": 0, + "3": 216, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 1784347776360, + "12": 0, + "2": 0, + "3": 216, + "4": 0, + "6": 0 + }, + "primitive_words": 1784347776144, + "target": 7, + "unit_repeated_words": 216 + }, + { + "cyclic_orbits": 58577347121, + "exact_repetitions": { + "1": 2108784326580, + "12": 0, + "2": 84888, + "3": 0, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 2108784411468, + "12": 0, + "2": 84888, + "3": 0, + "4": 0, + "6": 0 + }, + "primitive_words": 2108784326580, + "target": 8 + }, + { + "cyclic_orbits": 51330797478, + "exact_repetitions": { + "1": 1847908709208, + "12": 0, + "2": 0, + "3": 0, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 1847908709208, + "12": 0, + "2": 0, + "3": 0, + "4": 0, + "6": 0 + }, + "primitive_words": 1847908709208, + "target": 9 + }, + { + "cyclic_orbits": 57419540272, + "exact_repetitions": { + "1": 2067103403856, + "12": 0, + "2": 22320, + "3": 432, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 2067103426608, + "12": 0, + "2": 22320, + "3": 432, + "4": 0, + "6": 0 + }, + "primitive_words": 2067103403856, + "target": 10 + }, + { + "cyclic_orbits": 48754721394, + "exact_repetitions": { + "1": 1755169970184, + "12": 0, + "2": 0, + "3": 0, + "4": 0, + "6": 0 + }, + "fixed": { + "1": 1755169970184, + "12": 0, + "2": 0, + "3": 0, + "4": 0, + "6": 0 + }, + "primitive_words": 1755169970184, + "target": 11, + "unit_repeated_words": 0 + } + ], + "13": [ + { + "cyclic_orbits": 987951514480, + "exact_repetitions": { + "1": 38530109064642, + "13": 6 + }, + "fixed": { + "1": 38530109064648, + "13": 6 + }, + "primitive_words": 38530109064642, + "target": 0 + }, + { + "cyclic_orbits": 984842573398, + "exact_repetitions": { + "1": 38408860362522, + "13": 0 + }, + "fixed": { + "1": 38408860362522, + "13": 0 + }, + "primitive_words": 38408860362522, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 985800606048, + "exact_repetitions": { + "1": 38446223635872, + "13": 0 + }, + "fixed": { + "1": 38446223635872, + "13": 0 + }, + "primitive_words": 38446223635872, + "target": 2, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 986540387222, + "exact_repetitions": { + "1": 38475075101658, + "13": 0 + }, + "fixed": { + "1": 38475075101658, + "13": 0 + }, + "primitive_words": 38475075101658, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 985851317876, + "exact_repetitions": { + "1": 38448201397164, + "13": 0 + }, + "fixed": { + "1": 38448201397164, + "13": 0 + }, + "primitive_words": 38448201397164, + "target": 4, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 985938537976, + "exact_repetitions": { + "1": 38451602981064, + "13": 0 + }, + "fixed": { + "1": 38451602981064, + "13": 0 + }, + "primitive_words": 38451602981064, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 986774180806, + "exact_repetitions": { + "1": 38484193051434, + "13": 0 + }, + "fixed": { + "1": 38484193051434, + "13": 0 + }, + "primitive_words": 38484193051434, + "target": 6, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 985261354114, + "exact_repetitions": { + "1": 38425192810446, + "13": 0 + }, + "fixed": { + "1": 38425192810446, + "13": 0 + }, + "primitive_words": 38425192810446, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 986782847986, + "exact_repetitions": { + "1": 38484531071454, + "13": 0 + }, + "fixed": { + "1": 38484531071454, + "13": 0 + }, + "primitive_words": 38484531071454, + "target": 8, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 984898129538, + "exact_repetitions": { + "1": 38411027051982, + "13": 0 + }, + "fixed": { + "1": 38411027051982, + "13": 0 + }, + "primitive_words": 38411027051982, + "target": 9, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 985176172192, + "exact_repetitions": { + "1": 38421870715488, + "13": 0 + }, + "fixed": { + "1": 38421870715488, + "13": 0 + }, + "primitive_words": 38421870715488, + "target": 10, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 984437971012, + "exact_repetitions": { + "1": 38393080869468, + "13": 0 + }, + "fixed": { + "1": 38393080869468, + "13": 0 + }, + "primitive_words": 38393080869468, + "target": 11, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 987009945028, + "exact_repetitions": { + "1": 38493387856092, + "13": 0 + }, + "fixed": { + "1": 38493387856092, + "13": 0 + }, + "primitive_words": 38493387856092, + "target": 12, + "unit_repeated_words": 0 + } + ], + "14": [ + { + "cyclic_orbits": 19242204229986, + "exact_repetitions": { + "1": 808172577659118, + "14": 0, + "2": 0, + "7": 42 + }, + "fixed": { + "1": 808172577659160, + "14": 0, + "2": 0, + "7": 42 + }, + "primitive_words": 808172577659118, + "target": 0 + }, + { + "cyclic_orbits": 17594416206632, + "exact_repetitions": { + "1": 738965480678544, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 738965480678544, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 738965480678544, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 19210938619762, + "exact_repetitions": { + "1": 806859422030004, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 806859422030004, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 806859422030004, + "target": 2 + }, + { + "cyclic_orbits": 17597986085934, + "exact_repetitions": { + "1": 739115415609228, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 739115415609228, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 739115415609228, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 19220600312793, + "exact_repetitions": { + "1": 807265213137306, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 807265213137306, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 807265213137306, + "target": 4 + }, + { + "cyclic_orbits": 17576130661920, + "exact_repetitions": { + "1": 738197487800640, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 738197487800640, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 738197487800640, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 19208595287419, + "exact_repetitions": { + "1": 806761002071598, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 806761002071598, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 806761002071598, + "target": 6 + }, + { + "cyclic_orbits": 17613323921086, + "exact_repetitions": { + "1": 739759604685612, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 739759604685612, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 739759604685612, + "target": 7 + }, + { + "cyclic_orbits": 19205624609395, + "exact_repetitions": { + "1": 806636233594590, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 806636233594590, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 806636233594590, + "target": 8 + }, + { + "cyclic_orbits": 17600549397532, + "exact_repetitions": { + "1": 739223074696344, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 739223074696344, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 739223074696344, + "target": 9, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 19208911356071, + "exact_repetitions": { + "1": 806774276954982, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 806774276954982, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 806774276954982, + "target": 10 + }, + { + "cyclic_orbits": 17593764886034, + "exact_repetitions": { + "1": 738938125213428, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 738938125213428, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 738938125213428, + "target": 11, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 19188434675248, + "exact_repetitions": { + "1": 805914256360416, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 805914256360416, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 805914256360416, + "target": 12 + }, + { + "cyclic_orbits": 17585018759598, + "exact_repetitions": { + "1": 738570787903116, + "14": 0, + "2": 0, + "7": 0 + }, + "fixed": { + "1": 738570787903116, + "14": 0, + "2": 0, + "7": 0 + }, + "primitive_words": 738570787903116, + "target": 13, + "unit_repeated_words": 0 + } + ], + "15": [ + { + "cyclic_orbits": 354838237009552, + "exact_repetitions": { + "1": 15967720665428490, + "15": 0, + "3": 0, + "5": 270 + }, + "fixed": { + "1": 15967720665428760, + "15": 0, + "3": 0, + "5": 270 + }, + "primitive_words": 15967720665428490, + "target": 0 + }, + { + "cyclic_orbits": 351576839634478, + "exact_repetitions": { + "1": 15820957783551510, + "15": 0, + "3": 0, + "5": 0 + }, + "fixed": { + "1": 15820957783551510, + "15": 0, + "3": 0, + "5": 0 + }, + "primitive_words": 15820957783551510, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 350866320574620, + "exact_repetitions": { + "1": 15788984425848990, + "15": 0, + "3": 2970, + "5": 0 + }, + "fixed": { + "1": 15788984425851960, + "15": 0, + "3": 2970, + "5": 0 + }, + "primitive_words": 15788984425848990, + "target": 2, + "unit_repeated_words": 2970 + }, + { + "cyclic_orbits": 354104005648410, + "exact_repetitions": { + "1": 15934680254178450, + "15": 0, + "3": 0, + "5": 0 + }, + "fixed": { + "1": 15934680254178450, + "15": 0, + "3": 0, + "5": 0 + }, + "primitive_words": 15934680254178450, + "target": 3 + }, + { + "cyclic_orbits": 351355180675794, + "exact_repetitions": { + "1": 15810983130410730, + "15": 0, + "3": 0, + "5": 0 + }, + "fixed": { + "1": 15810983130410730, + "15": 0, + "3": 0, + "5": 0 + }, + "primitive_words": 15810983130410730, + "target": 4, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 351160970405012, + "exact_repetitions": { + "1": 15802243668179010, + "15": 6, + "3": 15450, + "5": 18 + }, + "fixed": { + "1": 15802243668194484, + "15": 6, + "3": 15456, + "5": 24 + }, + "primitive_words": 15802243668179010, + "target": 5 + }, + { + "cyclic_orbits": 354329871884144, + "exact_repetitions": { + "1": 15944844234786480, + "15": 0, + "3": 0, + "5": 0 + }, + "fixed": { + "1": 15944844234786480, + "15": 0, + "3": 0, + "5": 0 + }, + "primitive_words": 15944844234786480, + "target": 6 + }, + { + "cyclic_orbits": 351660645024646, + "exact_repetitions": { + "1": 15824729026109070, + "15": 0, + "3": 0, + "5": 0 + }, + "fixed": { + "1": 15824729026109070, + "15": 0, + "3": 0, + "5": 0 + }, + "primitive_words": 15824729026109070, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 350597489010918, + "exact_repetitions": { + "1": 15776887005475290, + "15": 0, + "3": 5340, + "5": 0 + }, + "fixed": { + "1": 15776887005480630, + "15": 0, + "3": 5340, + "5": 0 + }, + "primitive_words": 15776887005475290, + "target": 8, + "unit_repeated_words": 5340 + }, + { + "cyclic_orbits": 354147665392442, + "exact_repetitions": { + "1": 15936644942659890, + "15": 0, + "3": 0, + "5": 0 + }, + "fixed": { + "1": 15936644942659890, + "15": 0, + "3": 0, + "5": 0 + }, + "primitive_words": 15936644942659890, + "target": 9 + }, + { + "cyclic_orbits": 351933838639404, + "exact_repetitions": { + "1": 15837022738773180, + "15": 0, + "3": 0, + "5": 0 + }, + "fixed": { + "1": 15837022738773180, + "15": 0, + "3": 0, + "5": 0 + }, + "primitive_words": 15837022738773180, + "target": 10 + }, + { + "cyclic_orbits": 350644942402584, + "exact_repetitions": { + "1": 15779022408097110, + "15": 0, + "3": 6390, + "5": 0 + }, + "fixed": { + "1": 15779022408103500, + "15": 0, + "3": 6390, + "5": 0 + }, + "primitive_words": 15779022408097110, + "target": 11, + "unit_repeated_words": 6390 + }, + { + "cyclic_orbits": 354444431979224, + "exact_repetitions": { + "1": 15949999439065080, + "15": 0, + "3": 0, + "5": 0 + }, + "fixed": { + "1": 15949999439065080, + "15": 0, + "3": 0, + "5": 0 + }, + "primitive_words": 15949999439065080, + "target": 12 + }, + { + "cyclic_orbits": 351280433312426, + "exact_repetitions": { + "1": 15807619499059170, + "15": 0, + "3": 0, + "5": 0 + }, + "fixed": { + "1": 15807619499059170, + "15": 0, + "3": 0, + "5": 0 + }, + "primitive_words": 15807619499059170, + "target": 13, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 350555715095134, + "exact_repetitions": { + "1": 15775007179272030, + "15": 0, + "3": 3000, + "5": 0 + }, + "fixed": { + "1": 15775007179275030, + "15": 0, + "3": 3000, + "5": 0 + }, + "primitive_words": 15775007179272030, + "target": 14, + "unit_repeated_words": 3000 + } + ], + "16": [ + { + "cyclic_orbits": 7068172573880935, + "exact_repetitions": { + "1": 339272283487369824, + "16": 0, + "2": 29452704, + "4": 2328, + "8": 42 + }, + "fixed": { + "1": 339272283516824898, + "16": 0, + "2": 29455074, + "4": 2370, + "8": 42 + }, + "primitive_words": 339272283487369824, + "target": 0 + }, + { + "cyclic_orbits": 6732999606246126, + "exact_repetitions": { + "1": 323183981099814048, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 323183981099814048, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 323183981099814048, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 7048753429782264, + "exact_repetitions": { + "1": 338340164601248064, + "16": 0, + "2": 14150304, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 338340164615398368, + "16": 0, + "2": 14150304, + "4": 0, + "8": 0 + }, + "primitive_words": 338340164601248064, + "target": 2 + }, + { + "cyclic_orbits": 6728609103568128, + "exact_repetitions": { + "1": 322973236971270144, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 322973236971270144, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 322973236971270144, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 7065407214701114, + "exact_repetitions": { + "1": 339139546262257056, + "16": 0, + "2": 21697776, + "4": 216, + "8": 0 + }, + "fixed": { + "1": 339139546283955048, + "16": 0, + "2": 21697992, + "4": 216, + "8": 0 + }, + "primitive_words": 339139546262257056, + "target": 4 + }, + { + "cyclic_orbits": 6733443246580094, + "exact_repetitions": { + "1": 323205275835844512, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 323205275835844512, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 323205275835844512, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 7047920514012002, + "exact_repetitions": { + "1": 338300184644790528, + "16": 0, + "2": 13892784, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 338300184658683312, + "16": 0, + "2": 13892784, + "4": 0, + "8": 0 + }, + "primitive_words": 338300184644790528, + "target": 6 + }, + { + "cyclic_orbits": 6727085801597336, + "exact_repetitions": { + "1": 322900118476672128, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 322900118476672128, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 322900118476672128, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 7067080277171002, + "exact_repetitions": { + "1": 339219853254559008, + "16": 0, + "2": 24823680, + "4": 432, + "8": 0 + }, + "fixed": { + "1": 339219853279383120, + "16": 0, + "2": 24824112, + "4": 432, + "8": 0 + }, + "primitive_words": 339219853254559008, + "target": 8 + }, + { + "cyclic_orbits": 6733813774945774, + "exact_repetitions": { + "1": 323223061197397152, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 323223061197397152, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 323223061197397152, + "target": 9, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 7048381462245248, + "exact_repetitions": { + "1": 338322310160598912, + "16": 0, + "2": 13586496, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 338322310174185408, + "16": 0, + "2": 13586496, + "4": 0, + "8": 0 + }, + "primitive_words": 338322310160598912, + "target": 10 + }, + { + "cyclic_orbits": 6728684282496580, + "exact_repetitions": { + "1": 322976845559835840, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 322976845559835840, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 322976845559835840, + "target": 11, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 7065229035918232, + "exact_repetitions": { + "1": 339130993682999520, + "16": 0, + "2": 20537808, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 339130993703537328, + "16": 0, + "2": 20537808, + "4": 0, + "8": 0 + }, + "primitive_words": 339130993682999520, + "target": 12 + }, + { + "cyclic_orbits": 6732546558608470, + "exact_repetitions": { + "1": 323162234813206560, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 323162234813206560, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 323162234813206560, + "target": 13, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 7047563526715518, + "exact_repetitions": { + "1": 338283049258201536, + "16": 0, + "2": 12071664, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 338283049270273200, + "16": 0, + "2": 12071664, + "4": 0, + "8": 0 + }, + "primitive_words": 338283049258201536, + "target": 14 + }, + { + "cyclic_orbits": 6727434761262132, + "exact_repetitions": { + "1": 322916868540582336, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 322916868540582336, + "16": 0, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 322916868540582336, + "target": 15, + "unit_repeated_words": 0 + } + ], + "17": [ + { + "cyclic_orbits": 137575726737343684, + "exact_repetitions": { + "1": 7016362063604527782, + "17": 6 + }, + "fixed": { + "1": 7016362063604527788, + "17": 6 + }, + "primitive_words": 7016362063604527782, + "target": 0 + }, + { + "cyclic_orbits": 137571070998831912, + "exact_repetitions": { + "1": 7016124620940427512, + "17": 0 + }, + "fixed": { + "1": 7016124620940427512, + "17": 0 + }, + "primitive_words": 7016124620940427512, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137566471654726654, + "exact_repetitions": { + "1": 7015890054391059354, + "17": 0 + }, + "fixed": { + "1": 7015890054391059354, + "17": 0 + }, + "primitive_words": 7015890054391059354, + "target": 2, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137571368664969282, + "exact_repetitions": { + "1": 7016139801913433382, + "17": 0 + }, + "fixed": { + "1": 7016139801913433382, + "17": 0 + }, + "primitive_words": 7016139801913433382, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137569112676532534, + "exact_repetitions": { + "1": 7016024746503159234, + "17": 0 + }, + "fixed": { + "1": 7016024746503159234, + "17": 0 + }, + "primitive_words": 7016024746503159234, + "target": 4, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137568232686630886, + "exact_repetitions": { + "1": 7015979867018175186, + "17": 0 + }, + "fixed": { + "1": 7015979867018175186, + "17": 0 + }, + "primitive_words": 7015979867018175186, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137568654900004398, + "exact_repetitions": { + "1": 7016001399900224298, + "17": 0 + }, + "fixed": { + "1": 7016001399900224298, + "17": 0 + }, + "primitive_words": 7016001399900224298, + "target": 6, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137574592644286870, + "exact_repetitions": { + "1": 7016304224858630370, + "17": 0 + }, + "fixed": { + "1": 7016304224858630370, + "17": 0 + }, + "primitive_words": 7016304224858630370, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137572024374828024, + "exact_repetitions": { + "1": 7016173243116229224, + "17": 0 + }, + "fixed": { + "1": 7016173243116229224, + "17": 0 + }, + "primitive_words": 7016173243116229224, + "target": 8, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137566079207845586, + "exact_repetitions": { + "1": 7015870039600124886, + "17": 0 + }, + "fixed": { + "1": 7015870039600124886, + "17": 0 + }, + "primitive_words": 7015870039600124886, + "target": 9, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137571588242645496, + "exact_repetitions": { + "1": 7016151000374920296, + "17": 0 + }, + "fixed": { + "1": 7016151000374920296, + "17": 0 + }, + "primitive_words": 7016151000374920296, + "target": 10, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137566685155718782, + "exact_repetitions": { + "1": 7015900942941657882, + "17": 0 + }, + "fixed": { + "1": 7015900942941657882, + "17": 0 + }, + "primitive_words": 7015900942941657882, + "target": 11, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137572714852712938, + "exact_repetitions": { + "1": 7016208457488359838, + "17": 0 + }, + "fixed": { + "1": 7016208457488359838, + "17": 0 + }, + "primitive_words": 7016208457488359838, + "target": 12, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137565076538498760, + "exact_repetitions": { + "1": 7015818903463436760, + "17": 0 + }, + "fixed": { + "1": 7015818903463436760, + "17": 0 + }, + "primitive_words": 7015818903463436760, + "target": 13, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137566190424094036, + "exact_repetitions": { + "1": 7015875711628795836, + "17": 0 + }, + "fixed": { + "1": 7015875711628795836, + "17": 0 + }, + "primitive_words": 7015875711628795836, + "target": 14, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137569356659899930, + "exact_repetitions": { + "1": 7016037189654896430, + "17": 0 + }, + "fixed": { + "1": 7016037189654896430, + "17": 0 + }, + "primitive_words": 7016037189654896430, + "target": 15, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 137568809946065160, + "exact_repetitions": { + "1": 7016009307249323160, + "17": 0 + }, + "fixed": { + "1": 7016009307249323160, + "17": 0 + }, + "primitive_words": 7016009307249323160, + "target": 16, + "unit_repeated_words": 0 + } + ], + "18": [ + { + "cyclic_orbits": 2832770022109193593, + "exact_repetitions": { + "1": 152969581193895803700, + "18": 0, + "2": 0, + "3": 216774, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 152969581193896020474, + "18": 0, + "2": 0, + "3": 216774, + "6": 0, + "9": 0 + }, + "primitive_words": 152969581193895803700, + "target": 0 + }, + { + "cyclic_orbits": 2756536495630261418, + "exact_repetitions": { + "1": 148852970764034116572, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 148852970764034116572, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 148852970764034116572, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 2826141721628946266, + "exact_repetitions": { + "1": 152611652967963098364, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 152611652967963098364, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 152611652967963098364, + "target": 2 + }, + { + "cyclic_orbits": 2760953147254868176, + "exact_repetitions": { + "1": 149091469951762760544, + "18": 0, + "2": 0, + "3": 40320, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 149091469951762800864, + "18": 0, + "2": 0, + "3": 40320, + "6": 0, + "9": 0 + }, + "primitive_words": 149091469951762760544, + "target": 3 + }, + { + "cyclic_orbits": 2827692324792592205, + "exact_repetitions": { + "1": 152695385538799979070, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 152695385538799979070, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 152695385538799979070, + "target": 4 + }, + { + "cyclic_orbits": 2754717790638270864, + "exact_repetitions": { + "1": 148754760694466626656, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 148754760694466626656, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 148754760694466626656, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 2832641387810277506, + "exact_repetitions": { + "1": 152962634941754694210, + "18": 0, + "2": 0, + "3": 96912, + "6": 0, + "9": 42 + }, + "fixed": { + "1": 152962634941754791164, + "18": 0, + "2": 0, + "3": 96954, + "6": 0, + "9": 42 + }, + "primitive_words": 152962634941754694210, + "target": 6 + }, + { + "cyclic_orbits": 2756502241735503852, + "exact_repetitions": { + "1": 148851121053717208008, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 148851121053717208008, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 148851121053717208008, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 2826146987297670881, + "exact_repetitions": { + "1": 152611937314074227574, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 152611937314074227574, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 152611937314074227574, + "target": 8 + }, + { + "cyclic_orbits": 2761001969597901452, + "exact_repetitions": { + "1": 149094106358286497724, + "18": 0, + "2": 0, + "3": 60228, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 149094106358286557952, + "18": 0, + "2": 0, + "3": 60228, + "6": 0, + "9": 0 + }, + "primitive_words": 149094106358286497724, + "target": 9 + }, + { + "cyclic_orbits": 2827620494635085833, + "exact_repetitions": { + "1": 152691506710294634982, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 152691506710294634982, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 152691506710294634982, + "target": 10 + }, + { + "cyclic_orbits": 2754738479543539192, + "exact_repetitions": { + "1": 148755877895351116368, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 148755877895351116368, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 148755877895351116368, + "target": 11, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 2832666171764529932, + "exact_repetitions": { + "1": 152963973275284361664, + "18": 0, + "2": 0, + "3": 84888, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 152963973275284446552, + "18": 0, + "2": 0, + "3": 84888, + "6": 0, + "9": 0 + }, + "primitive_words": 152963973275284361664, + "target": 12 + }, + { + "cyclic_orbits": 2756612157459556536, + "exact_repetitions": { + "1": 148857056502816052944, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 148857056502816052944, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 148857056502816052944, + "target": 13, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 2826097552461738869, + "exact_repetitions": { + "1": 152609267832933898926, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 152609267832933898926, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 152609267832933898926, + "target": 14 + }, + { + "cyclic_orbits": 2760907626879512184, + "exact_repetitions": { + "1": 149089011851493590976, + "18": 0, + "2": 0, + "3": 22320, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 149089011851493613296, + "18": 0, + "2": 0, + "3": 22320, + "6": 0, + "9": 0 + }, + "primitive_words": 149089011851493590976, + "target": 15 + }, + { + "cyclic_orbits": 2827541510799781819, + "exact_repetitions": { + "1": 152687241583188218226, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 152687241583188218226, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 152687241583188218226, + "target": 16 + }, + { + "cyclic_orbits": 2754750663024192122, + "exact_repetitions": { + "1": 148756535803306374588, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "fixed": { + "1": 148756535803306374588, + "18": 0, + "2": 0, + "3": 0, + "6": 0, + "9": 0 + }, + "primitive_words": 148756535803306374588, + "target": 17, + "unit_repeated_words": 0 + } + ], + "19": [ + { + "cyclic_orbits": 57587203776761459862, + "exact_repetitions": { + "1": 3282470615275403212020, + "19": 6 + }, + "fixed": { + "1": 3282470615275403212026, + "19": 6 + }, + "primitive_words": 3282470615275403212020, + "target": 0 + }, + { + "cyclic_orbits": 57586957993909140592, + "exact_repetitions": { + "1": 3282456605652821013744, + "19": 0 + }, + "fixed": { + "1": 3282456605652821013744, + "19": 0 + }, + "primitive_words": 3282456605652821013744, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586980908933542692, + "exact_repetitions": { + "1": 3282457911809211933444, + "19": 0 + }, + "fixed": { + "1": 3282457911809211933444, + "19": 0 + }, + "primitive_words": 3282457911809211933444, + "target": 2, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586919280967765654, + "exact_repetitions": { + "1": 3282454399015162642278, + "19": 0 + }, + "fixed": { + "1": 3282454399015162642278, + "19": 0 + }, + "primitive_words": 3282454399015162642278, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586770004916374844, + "exact_repetitions": { + "1": 3282445890280233366108, + "19": 0 + }, + "fixed": { + "1": 3282445890280233366108, + "19": 0 + }, + "primitive_words": 3282445890280233366108, + "target": 4, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57587226560459213738, + "exact_repetitions": { + "1": 3282471913946175183066, + "19": 0 + }, + "fixed": { + "1": 3282471913946175183066, + "19": 0 + }, + "primitive_words": 3282471913946175183066, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586962300939853178, + "exact_repetitions": { + "1": 3282456851153571631146, + "19": 0 + }, + "fixed": { + "1": 3282456851153571631146, + "19": 0 + }, + "primitive_words": 3282456851153571631146, + "target": 6, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586741393588304532, + "exact_repetitions": { + "1": 3282444259434533358324, + "19": 0 + }, + "fixed": { + "1": 3282444259434533358324, + "19": 0 + }, + "primitive_words": 3282444259434533358324, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57587055862759132476, + "exact_repetitions": { + "1": 3282462184177270551132, + "19": 0 + }, + "fixed": { + "1": 3282462184177270551132, + "19": 0 + }, + "primitive_words": 3282462184177270551132, + "target": 8, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586969719047756884, + "exact_repetitions": { + "1": 3282457273985722142388, + "19": 0 + }, + "fixed": { + "1": 3282457273985722142388, + "19": 0 + }, + "primitive_words": 3282457273985722142388, + "target": 9, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57587055891751243716, + "exact_repetitions": { + "1": 3282462185829820891812, + "19": 0 + }, + "fixed": { + "1": 3282462185829820891812, + "19": 0 + }, + "primitive_words": 3282462185829820891812, + "target": 10, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586998616722949646, + "exact_repetitions": { + "1": 3282458921153208129822, + "19": 0 + }, + "fixed": { + "1": 3282458921153208129822, + "19": 0 + }, + "primitive_words": 3282458921153208129822, + "target": 11, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57587093322573176006, + "exact_repetitions": { + "1": 3282464319386671032342, + "19": 0 + }, + "fixed": { + "1": 3282464319386671032342, + "19": 0 + }, + "primitive_words": 3282464319386671032342, + "target": 12, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586747607095529356, + "exact_repetitions": { + "1": 3282444613604445173292, + "19": 0 + }, + "fixed": { + "1": 3282444613604445173292, + "19": 0 + }, + "primitive_words": 3282444613604445173292, + "target": 13, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586794810162685806, + "exact_repetitions": { + "1": 3282447304179273090942, + "19": 0 + }, + "fixed": { + "1": 3282447304179273090942, + "19": 0 + }, + "primitive_words": 3282447304179273090942, + "target": 14, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586769239078734070, + "exact_repetitions": { + "1": 3282445846627487841990, + "19": 0 + }, + "fixed": { + "1": 3282445846627487841990, + "19": 0 + }, + "primitive_words": 3282445846627487841990, + "target": 15, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586944234189433556, + "exact_repetitions": { + "1": 3282455821348797712692, + "19": 0 + }, + "fixed": { + "1": 3282455821348797712692, + "19": 0 + }, + "primitive_words": 3282455821348797712692, + "target": 16, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57586835628798479688, + "exact_repetitions": { + "1": 3282449630841513342216, + "19": 0 + }, + "fixed": { + "1": 3282449630841513342216, + "19": 0 + }, + "primitive_words": 3282449630841513342216, + "target": 17, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57587011022195265838, + "exact_repetitions": { + "1": 3282459628265130152766, + "19": 0 + }, + "fixed": { + "1": 3282459628265130152766, + "19": 0 + }, + "primitive_words": 3282459628265130152766, + "target": 18, + "unit_repeated_words": 0 + } + ], + "2": [ + { + "cyclic_orbits": 7, + "exact_repetitions": { + "1": 42, + "2": 0 + }, + "fixed": { + "1": 42, + "2": 0 + }, + "primitive_words": 42, + "target": 0 + }, + { + "cyclic_orbits": 0, + "exact_repetitions": { + "1": 0, + "2": 0 + }, + "fixed": { + "1": 0, + "2": 0 + }, + "primitive_words": 0, + "target": 1, + "unit_repeated_words": 0 + } + ], + "20": [ + { + "cyclic_orbits": 1212304579233815394347, + "exact_repetitions": { + "1": 72738274754015440491540, + "10": 42, + "2": 6741578610, + "20": 0, + "4": 0, + "5": 2328 + }, + "fixed": { + "1": 72738274754022182072520, + "10": 42, + "2": 6741578652, + "20": 0, + "4": 0, + "5": 2370 + }, + "primitive_words": 72738274754015440491540, + "target": 0 + }, + { + "cyclic_orbits": 1195564115161739587518, + "exact_repetitions": { + "1": 71733846909704375251080, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 71733846909704375251080, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 71733846909704375251080, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 1211990872183395100408, + "exact_repetitions": { + "1": 72719452330994346046080, + "10": 0, + "2": 4679989200, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 72719452330999026035280, + "10": 0, + "2": 4679989200, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 72719452330994346046080, + "target": 2 + }, + { + "cyclic_orbits": 1195444539149314590502, + "exact_repetitions": { + "1": 71726672348958875430120, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 71726672348958875430120, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 71726672348958875430120, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 1212239606613641872367, + "exact_repetitions": { + "1": 72734376396805615513680, + "10": 0, + "2": 6448414170, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 72734376396812063927850, + "10": 0, + "2": 6448414170, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 72734376396805615513680, + "target": 4 + }, + { + "cyclic_orbits": 1195605205636413229786, + "exact_repetitions": { + "1": 71736312338184793786080, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 216 + }, + "fixed": { + "1": 71736312338184793786296, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 216 + }, + "primitive_words": 71736312338184793786080, + "target": 5 + }, + { + "cyclic_orbits": 1211971308930733472924, + "exact_repetitions": { + "1": 72718278535834607255280, + "10": 0, + "2": 4700560080, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 72718278535839307815360, + "10": 0, + "2": 4700560080, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 72718278535834607255280, + "target": 6 + }, + { + "cyclic_orbits": 1195482015736259914656, + "exact_repetitions": { + "1": 71728920944175594879360, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 71728920944175594879360, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 71728920944175594879360, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 1212232177734703484906, + "exact_repetitions": { + "1": 72733930664069620038600, + "10": 0, + "2": 6294527880, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 72733930664075914566480, + "10": 0, + "2": 6294527880, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 72733930664069620038600, + "target": 8 + }, + { + "cyclic_orbits": 1195547582088230407158, + "exact_repetitions": { + "1": 71732854925293824429480, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 71732854925293824429480, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 71732854925293824429480, + "target": 9, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 1212013397657945936778, + "exact_repetitions": { + "1": 72720803859467024320320, + "10": 0, + "2": 4865942100, + "20": 0, + "4": 0, + "5": 432 + }, + "fixed": { + "1": 72720803859471890262852, + "10": 0, + "2": 4865942100, + "20": 0, + "4": 0, + "5": 432 + }, + "primitive_words": 72720803859467024320320, + "target": 10 + }, + { + "cyclic_orbits": 1195462671393619738676, + "exact_repetitions": { + "1": 71727760283617184320560, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 71727760283617184320560, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 71727760283617184320560, + "target": 11, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 1212278713002704550917, + "exact_repetitions": { + "1": 72736722780149502853200, + "10": 0, + "2": 6385100910, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 72736722780155887954110, + "10": 0, + "2": 6385100910, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 72736722780149502853200, + "target": 12 + }, + { + "cyclic_orbits": 1195547004855661392950, + "exact_repetitions": { + "1": 71732820291339683577000, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 71732820291339683577000, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 71732820291339683577000, + "target": 13, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 1211949414898525818036, + "exact_repetitions": { + "1": 72716964893902103760000, + "10": 0, + "2": 4722661080, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 72716964893906826421080, + "10": 0, + "2": 4722661080, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 72716964893902103760000, + "target": 14 + }, + { + "cyclic_orbits": 1195504245981603352276, + "exact_repetitions": { + "1": 71730254758896201136560, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 71730254758896201136560, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 71730254758896201136560, + "target": 15 + }, + { + "cyclic_orbits": 1212258751767864637501, + "exact_repetitions": { + "1": 72735525106059463659180, + "10": 0, + "2": 6207295440, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 72735525106065670954620, + "10": 0, + "2": 6207295440, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 72735525106059463659180, + "target": 16 + }, + { + "cyclic_orbits": 1195580648278610494396, + "exact_repetitions": { + "1": 71734838896716629663760, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 71734838896716629663760, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 71734838896716629663760, + "target": 17, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 1211944490213487406714, + "exact_repetitions": { + "1": 72716669412799956437280, + "10": 0, + "2": 4643982780, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 72716669412804600420060, + "10": 0, + "2": 4643982780, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 72716669412799956437280, + "target": 18 + }, + { + "cyclic_orbits": 1195444266717304860058, + "exact_repetitions": { + "1": 71726656003038291603480, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "fixed": { + "1": 71726656003038291603480, + "10": 0, + "2": 0, + "20": 0, + "4": 0, + "5": 0 + }, + "primitive_words": 71726656003038291603480, + "target": 19, + "unit_repeated_words": 0 + } + ], + "21": [ + { + "cyclic_orbits": 25487924721594684075612, + "exact_repetitions": { + "1": 1605739257460465096761666, + "21": 0, + "3": 0, + "7": 270 + }, + "fixed": { + "1": 1605739257460465096761936, + "21": 0, + "3": 0, + "7": 270 + }, + "primitive_words": 1605739257460465096761666, + "target": 0 + }, + { + "cyclic_orbits": 25478635123281112095742, + "exact_repetitions": { + "1": 1605154012766710059422160, + "21": 0, + "3": 869862, + "7": 0 + }, + "fixed": { + "1": 1605154012766710060292022, + "21": 0, + "3": 869862, + "7": 0 + }, + "primitive_words": 1605154012766710059422160, + "target": 1, + "unit_repeated_words": 869862 + }, + { + "cyclic_orbits": 25474836077513827005950, + "exact_repetitions": { + "1": 1604914672883371101374850, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1604914672883371101374850, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1604914672883371101374850, + "target": 2, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 25487836621177006520884, + "exact_repetitions": { + "1": 1605733707134151410815692, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1605733707134151410815692, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1605733707134151410815692, + "target": 3 + }, + { + "cyclic_orbits": 25478689937105647307082, + "exact_repetitions": { + "1": 1605157466037655777189110, + "21": 0, + "3": 1052352, + "7": 0 + }, + "fixed": { + "1": 1605157466037655778241462, + "21": 0, + "3": 1052352, + "7": 0 + }, + "primitive_words": 1605157466037655777189110, + "target": 4, + "unit_repeated_words": 1052352 + }, + { + "cyclic_orbits": 25474704389152758715156, + "exact_repetitions": { + "1": 1604906376516623799054828, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1604906376516623799054828, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1604906376516623799054828, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 25487774418090022324182, + "exact_repetitions": { + "1": 1605729788339671406423466, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1605729788339671406423466, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1605729788339671406423466, + "target": 6 + }, + { + "cyclic_orbits": 25478756534222138745924, + "exact_repetitions": { + "1": 1605161661655994736082110, + "21": 6, + "3": 1636950, + "7": 18 + }, + "fixed": { + "1": 1605161661655994737719084, + "21": 6, + "3": 1636956, + "7": 24 + }, + "primitive_words": 1605161661655994736082110, + "target": 7 + }, + { + "cyclic_orbits": 25474815386436473377520, + "exact_repetitions": { + "1": 1604913369345497822783760, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1604913369345497822783760, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1604913369345497822783760, + "target": 8, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 25487822485218970366786, + "exact_repetitions": { + "1": 1605732816568795133107518, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1605732816568795133107518, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1605732816568795133107518, + "target": 9 + }, + { + "cyclic_orbits": 25478682418947338813906, + "exact_repetitions": { + "1": 1605156992393682341968956, + "21": 0, + "3": 1102374, + "7": 0 + }, + "fixed": { + "1": 1605156992393682343071330, + "21": 0, + "3": 1102374, + "7": 0 + }, + "primitive_words": 1605156992393682341968956, + "target": 10, + "unit_repeated_words": 1102374 + }, + { + "cyclic_orbits": 25474871633276394662474, + "exact_repetitions": { + "1": 1604916912896412863735862, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1604916912896412863735862, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1604916912896412863735862, + "target": 11, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 25487683599144673449050, + "exact_repetitions": { + "1": 1605724066746114427290150, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1605724066746114427290150, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1605724066746114427290150, + "target": 12 + }, + { + "cyclic_orbits": 25478618446654195835662, + "exact_repetitions": { + "1": 1605152962139214333952764, + "21": 0, + "3": 1231314, + "7": 0 + }, + "fixed": { + "1": 1605152962139214335184078, + "21": 0, + "3": 1231314, + "7": 0 + }, + "primitive_words": 1605152962139214333952764, + "target": 13, + "unit_repeated_words": 1231314 + }, + { + "cyclic_orbits": 25474928977469445383874, + "exact_repetitions": { + "1": 1604920525580575059184062, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1604920525580575059184062, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1604920525580575059184062, + "target": 14 + }, + { + "cyclic_orbits": 25487786916246156664890, + "exact_repetitions": { + "1": 1605730575723507869888070, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1605730575723507869888070, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1605730575723507869888070, + "target": 15 + }, + { + "cyclic_orbits": 25478670306348492337270, + "exact_repetitions": { + "1": 1605156229299955013890992, + "21": 0, + "3": 1119006, + "7": 0 + }, + "fixed": { + "1": 1605156229299955015009998, + "21": 0, + "3": 1119006, + "7": 0 + }, + "primitive_words": 1605156229299955013890992, + "target": 16, + "unit_repeated_words": 1119006 + }, + { + "cyclic_orbits": 25474830527236176998044, + "exact_repetitions": { + "1": 1604914323215879150876772, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1604914323215879150876772, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1604914323215879150876772, + "target": 17, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 25487830621194085196536, + "exact_repetitions": { + "1": 1605733329135227367381768, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1605733329135227367381768, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1605733329135227367381768, + "target": 18 + }, + { + "cyclic_orbits": 25478537363557089852246, + "exact_repetitions": { + "1": 1605147853904096657048712, + "21": 0, + "3": 1214262, + "7": 0 + }, + "fixed": { + "1": 1605147853904096658262974, + "21": 0, + "3": 1214262, + "7": 0 + }, + "primitive_words": 1605147853904096657048712, + "target": 19, + "unit_repeated_words": 1214262 + }, + { + "cyclic_orbits": 25474810086296328201978, + "exact_repetitions": { + "1": 1604913035436668676724614, + "21": 0, + "3": 0, + "7": 0 + }, + "fixed": { + "1": 1604913035436668676724614, + "21": 0, + "3": 0, + "7": 0 + }, + "primitive_words": 1604913035436668676724614, + "target": 20, + "unit_repeated_words": 0 + } + ], + "22": [ + { + "cyclic_orbits": 547488907432374655001635, + "exact_repetitions": { + "1": 36134267890536727230107448, + "11": 42, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134267890536727230107490, + "11": 42, + "2": 0, + "22": 0 + }, + "primitive_words": 36134267890536727230107448, + "target": 0 + }, + { + "cyclic_orbits": 543431170210863687976854, + "exact_repetitions": { + "1": 35866457233917003406472364, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866457233917003406472364, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866457233917003406472364, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 547488398231575840461820, + "exact_repetitions": { + "1": 36134234283284005470480120, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134234283284005470480120, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 36134234283284005470480120, + "target": 2 + }, + { + "cyclic_orbits": 543430896298918447142446, + "exact_repetitions": { + "1": 35866439155728617511401436, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866439155728617511401436, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866439155728617511401436, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 547488606411110707790950, + "exact_repetitions": { + "1": 36134248023133306714202700, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134248023133306714202700, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 36134248023133306714202700, + "target": 4 + }, + { + "cyclic_orbits": 543431122611171995963180, + "exact_repetitions": { + "1": 35866454092337351733569880, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866454092337351733569880, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866454092337351733569880, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 547488802569633027501958, + "exact_repetitions": { + "1": 36134260969595779815129228, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134260969595779815129228, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 36134260969595779815129228, + "target": 6 + }, + { + "cyclic_orbits": 543430879728160130919500, + "exact_repetitions": { + "1": 35866438062058568640687000, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866438062058568640687000, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866438062058568640687000, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 547488561630856066141750, + "exact_repetitions": { + "1": 36134245067636500365355500, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134245067636500365355500, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 36134245067636500365355500, + "target": 8 + }, + { + "cyclic_orbits": 543430698632066966896876, + "exact_repetitions": { + "1": 35866426109716419815193816, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866426109716419815193816, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866426109716419815193816, + "target": 9, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 547488417073228944729727, + "exact_repetitions": { + "1": 36134235526833110352161982, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134235526833110352161982, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 36134235526833110352161982, + "target": 10 + }, + { + "cyclic_orbits": 543431179204573715515182, + "exact_repetitions": { + "1": 35866457827501865224002012, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866457827501865224002012, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866457827501865224002012, + "target": 11 + }, + { + "cyclic_orbits": 547488752544154373957214, + "exact_repetitions": { + "1": 36134257667914188681176124, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134257667914188681176124, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 36134257667914188681176124, + "target": 12 + }, + { + "cyclic_orbits": 543430790942490417697858, + "exact_repetitions": { + "1": 35866432202204367568058628, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866432202204367568058628, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866432202204367568058628, + "target": 13, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 547488527242254624306954, + "exact_repetitions": { + "1": 36134242797988805204258964, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134242797988805204258964, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 36134242797988805204258964, + "target": 14 + }, + { + "cyclic_orbits": 543431165734230450401816, + "exact_repetitions": { + "1": 35866456938459209726519856, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866456938459209726519856, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866456938459209726519856, + "target": 15, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 547488549635625181114352, + "exact_repetitions": { + "1": 36134244275951261953547232, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134244275951261953547232, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 36134244275951261953547232, + "target": 16 + }, + { + "cyclic_orbits": 543431106051905191391672, + "exact_repetitions": { + "1": 35866452999425742631850352, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866452999425742631850352, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866452999425742631850352, + "target": 17, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 547488464757462453695131, + "exact_repetitions": { + "1": 36134238673992521943878646, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134238673992521943878646, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 36134238673992521943878646, + "target": 18 + }, + { + "cyclic_orbits": 543430844060440730346380, + "exact_repetitions": { + "1": 35866435707989088202861080, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866435707989088202861080, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866435707989088202861080, + "target": 19, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 547488314872715854065615, + "exact_repetitions": { + "1": 36134228781599246368330590, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 36134228781599246368330590, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 36134228781599246368330590, + "target": 20 + }, + { + "cyclic_orbits": 543430808855293744099570, + "exact_repetitions": { + "1": 35866433384449387110571620, + "11": 0, + "2": 0, + "22": 0 + }, + "fixed": { + "1": 35866433384449387110571620, + "11": 0, + "2": 0, + "22": 0 + }, + "primitive_words": 35866433384449387110571620, + "target": 21, + "unit_repeated_words": 0 + } + ], + "23": [ + { + "cyclic_orbits": 11797531457309289574212182, + "exact_repetitions": { + "1": 814029670554340980620640420, + "23": 6 + }, + "fixed": { + "1": 814029670554340980620640426, + "23": 6 + }, + "primitive_words": 814029670554340980620640420, + "target": 0 + }, + { + "cyclic_orbits": 11797531220770199663950758, + "exact_repetitions": { + "1": 814029654233143776812602302, + "23": 0 + }, + "fixed": { + "1": 814029654233143776812602302, + "23": 0 + }, + "primitive_words": 814029654233143776812602302, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530692180357594339212, + "exact_repetitions": { + "1": 814029617760444674009405628, + "23": 0 + }, + "fixed": { + "1": 814029617760444674009405628, + "23": 0 + }, + "primitive_words": 814029617760444674009405628, + "target": 2, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530478700572301640510, + "exact_repetitions": { + "1": 814029603030339488813195190, + "23": 0 + }, + "fixed": { + "1": 814029603030339488813195190, + "23": 0 + }, + "primitive_words": 814029603030339488813195190, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530529945063585806504, + "exact_repetitions": { + "1": 814029606566209387420648776, + "23": 0 + }, + "fixed": { + "1": 814029606566209387420648776, + "23": 0 + }, + "primitive_words": 814029606566209387420648776, + "target": 4, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530582008538263598452, + "exact_repetitions": { + "1": 814029610158589140188293188, + "23": 0 + }, + "fixed": { + "1": 814029610158589140188293188, + "23": 0 + }, + "primitive_words": 814029610158589140188293188, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530149510801333319088, + "exact_repetitions": { + "1": 814029580316245291999017072, + "23": 0 + }, + "fixed": { + "1": 814029580316245291999017072, + "23": 0 + }, + "primitive_words": 814029580316245291999017072, + "target": 6, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797531093966940647990172, + "exact_repetitions": { + "1": 814029645483718904711321868, + "23": 0 + }, + "fixed": { + "1": 814029645483718904711321868, + "23": 0 + }, + "primitive_words": 814029645483718904711321868, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530184646194150095472, + "exact_repetitions": { + "1": 814029582740587396356587568, + "23": 0 + }, + "fixed": { + "1": 814029582740587396356587568, + "23": 0 + }, + "primitive_words": 814029582740587396356587568, + "target": 8, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530931206167492868702, + "exact_repetitions": { + "1": 814029634253225557007940438, + "23": 0 + }, + "fixed": { + "1": 814029634253225557007940438, + "23": 0 + }, + "primitive_words": 814029634253225557007940438, + "target": 9, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530939415690522680958, + "exact_repetitions": { + "1": 814029634819682646064986102, + "23": 0 + }, + "fixed": { + "1": 814029634819682646064986102, + "23": 0 + }, + "primitive_words": 814029634819682646064986102, + "target": 10, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797529999012152167410912, + "exact_repetitions": { + "1": 814029569931838499551352928, + "23": 0 + }, + "fixed": { + "1": 814029569931838499551352928, + "23": 0 + }, + "primitive_words": 814029569931838499551352928, + "target": 11, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530869940482123684698, + "exact_repetitions": { + "1": 814029630025893266534244162, + "23": 0 + }, + "fixed": { + "1": 814029630025893266534244162, + "23": 0 + }, + "primitive_words": 814029630025893266534244162, + "target": 12, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797531184612978187278206, + "exact_repetitions": { + "1": 814029651738295494922196214, + "23": 0 + }, + "fixed": { + "1": 814029651738295494922196214, + "23": 0 + }, + "primitive_words": 814029651738295494922196214, + "target": 13, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530887663141399270658, + "exact_repetitions": { + "1": 814029631248756756549675402, + "23": 0 + }, + "fixed": { + "1": 814029631248756756549675402, + "23": 0 + }, + "primitive_words": 814029631248756756549675402, + "target": 14, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530045384335796704182, + "exact_repetitions": { + "1": 814029573131519169972588558, + "23": 0 + }, + "fixed": { + "1": 814029573131519169972588558, + "23": 0 + }, + "primitive_words": 814029573131519169972588558, + "target": 15, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530608387186131639908, + "exact_repetitions": { + "1": 814029611978715843083153652, + "23": 0 + }, + "fixed": { + "1": 814029611978715843083153652, + "23": 0 + }, + "primitive_words": 814029611978715843083153652, + "target": 16, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530370314292677489014, + "exact_repetitions": { + "1": 814029595551686194746741966, + "23": 0 + }, + "fixed": { + "1": 814029595551686194746741966, + "23": 0 + }, + "primitive_words": 814029595551686194746741966, + "target": 17, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530308457877383411470, + "exact_repetitions": { + "1": 814029591283593539455391430, + "23": 0 + }, + "fixed": { + "1": 814029591283593539455391430, + "23": 0 + }, + "primitive_words": 814029591283593539455391430, + "target": 18, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797529849654284766417600, + "exact_repetitions": { + "1": 814029559626145648882814400, + "23": 0 + }, + "fixed": { + "1": 814029559626145648882814400, + "23": 0 + }, + "primitive_words": 814029559626145648882814400, + "target": 19, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530278681760651248618, + "exact_repetitions": { + "1": 814029589229041484936154642, + "23": 0 + }, + "fixed": { + "1": 814029589229041484936154642, + "23": 0 + }, + "primitive_words": 814029589229041484936154642, + "target": 20, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530223885036008443462, + "exact_repetitions": { + "1": 814029585448067484582598878, + "23": 0 + }, + "fixed": { + "1": 814029585448067484582598878, + "23": 0 + }, + "primitive_words": 814029585448067484582598878, + "target": 21, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 11797530323124309739472424, + "exact_repetitions": { + "1": 814029592295577372023597256, + "23": 0 + }, + "fixed": { + "1": 814029592295577372023597256, + "23": 0 + }, + "primitive_words": 814029592295577372023597256, + "target": 22, + "unit_repeated_words": 0 + } + ], + "24": [ + { + "cyclic_orbits": 258116426546597194349294557, + "exact_repetitions": { + "1": 18584382711354993551781642672, + "12": 0, + "2": 2220683349168, + "24": 0, + "3": 0, + "4": 216774, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18584382711354995772465208614, + "12": 0, + "2": 2220683565942, + "24": 0, + "3": 0, + "4": 216774, + "6": 0, + "8": 0 + }, + "primitive_words": 18584382711354993551781642672, + "target": 0 + }, + { + "cyclic_orbits": 257061582181642804232267086, + "exact_repetitions": { + "1": 18508433917078281904723230192, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18508433917078281904723230192, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18508433917078281904723230192, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 258081536727635708929763774, + "exact_repetitions": { + "1": 18581870644389767454794678304, + "12": 0, + "2": 1794043350000, + "24": 0, + "3": 20537808, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18581870644389769248858566112, + "12": 0, + "2": 1794043350000, + "24": 0, + "3": 20537808, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18581870644389767454794678304, + "target": 2 + }, + { + "cyclic_orbits": 257078445867826965256200354, + "exact_repetitions": { + "1": 18509648102483541498446425488, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18509648102483541498446425488, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18509648102483541498446425488, + "target": 3 + }, + { + "cyclic_orbits": 258096385717407574354579632, + "exact_repetitions": { + "1": 18582939771653341235485232352, + "12": 0, + "2": 2059022169936, + "24": 0, + "3": 0, + "4": 40320, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18582939771653343294507442608, + "12": 0, + "2": 2059022210256, + "24": 0, + "3": 0, + "4": 40320, + "6": 0, + "8": 0 + }, + "primitive_words": 18582939771653341235485232352, + "target": 4 + }, + { + "cyclic_orbits": 257051755466825342015094526, + "exact_repetitions": { + "1": 18507726393611424625050590880, + "12": 0, + "2": 0, + "24": 0, + "3": 12071664, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18507726393611424625062662544, + "12": 0, + "2": 0, + "24": 0, + "3": 12071664, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18507726393611424625050590880, + "target": 5, + "unit_repeated_words": 12071664 + }, + { + "cyclic_orbits": 258110760650173299914856470, + "exact_repetitions": { + "1": 18583974766812473909300814336, + "12": 0, + "2": 1842284425752, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18583974766812475751585240088, + "12": 0, + "2": 1842284425752, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18583974766812473909300814336, + "target": 6 + }, + { + "cyclic_orbits": 257059220480908360664960776, + "exact_repetitions": { + "1": 18508263874625401967877175872, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18508263874625401967877175872, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18508263874625401967877175872, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 258087115709162763112238884, + "exact_repetitions": { + "1": 18582272331059714706565153920, + "12": 42, + "2": 2118713642748, + "24": 0, + "3": 29452704, + "4": 96912, + "6": 2328, + "8": 0 + }, + "fixed": { + "1": 18582272331059716825308348654, + "12": 42, + "2": 2118713742030, + "24": 0, + "3": 29455074, + "4": 96954, + "6": 2370, + "8": 0 + }, + "primitive_words": 18582272331059714706565153920, + "target": 8 + }, + { + "cyclic_orbits": 257080701435141928683381782, + "exact_repetitions": { + "1": 18509810503330218865203488304, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18509810503330218865203488304, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18509810503330218865203488304, + "target": 9 + }, + { + "cyclic_orbits": 258090914516893648470266696, + "exact_repetitions": { + "1": 18582545845216339133557632912, + "12": 0, + "2": 1778150784600, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18582545845216340911708417512, + "12": 0, + "2": 1778150784600, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18582545845216339133557632912, + "target": 10 + }, + { + "cyclic_orbits": 257049450611902502249002812, + "exact_repetitions": { + "1": 18507560444056980161885751552, + "12": 0, + "2": 0, + "24": 0, + "3": 14150304, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18507560444056980161899901856, + "12": 0, + "2": 0, + "24": 0, + "3": 14150304, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18507560444056980161885751552, + "target": 11, + "unit_repeated_words": 14150304 + }, + { + "cyclic_orbits": 258116313628232570805039888, + "exact_repetitions": { + "1": 18584374581232740800041249296, + "12": 0, + "2": 2148960690864, + "24": 0, + "3": 0, + "4": 60228, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18584374581232742949002000388, + "12": 0, + "2": 2148960751092, + "24": 0, + "3": 0, + "4": 60228, + "6": 0, + "8": 0 + }, + "primitive_words": 18584374581232740800041249296, + "target": 12 + }, + { + "cyclic_orbits": 257061565949430376110905844, + "exact_repetitions": { + "1": 18508432748358987079985220768, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18508432748358987079985220768, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18508432748358987079985220768, + "target": 13, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 258081492839341254956561310, + "exact_repetitions": { + "1": 18581867484432566788111767408, + "12": 0, + "2": 1784347776144, + "24": 0, + "3": 21697776, + "4": 0, + "6": 216, + "8": 0 + }, + "fixed": { + "1": 18581867484432568572481241544, + "12": 0, + "2": 1784347776360, + "24": 0, + "3": 21697992, + "4": 0, + "6": 216, + "8": 0 + }, + "primitive_words": 18581867484432566788111767408, + "target": 14 + }, + { + "cyclic_orbits": 257078362053965870171913006, + "exact_repetitions": { + "1": 18509642067885542652377736432, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18509642067885542652377736432, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18509642067885542652377736432, + "target": 15 + }, + { + "cyclic_orbits": 258096481775100704805086279, + "exact_repetitions": { + "1": 18582946687807246528397219376, + "12": 0, + "2": 2108784326580, + "24": 0, + "3": 0, + "4": 84888, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18582946687807248637181630844, + "12": 0, + "2": 2108784411468, + "24": 0, + "3": 0, + "4": 84888, + "6": 0, + "8": 0 + }, + "primitive_words": 18582946687807246528397219376, + "target": 16 + }, + { + "cyclic_orbits": 257051771650632272112055020, + "exact_repetitions": { + "1": 18507727558845523592026283088, + "12": 0, + "2": 0, + "24": 0, + "3": 13892784, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18507727558845523592040175872, + "12": 0, + "2": 0, + "24": 0, + "3": 13892784, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18507727558845523592026283088, + "target": 17, + "unit_repeated_words": 13892784 + }, + { + "cyclic_orbits": 258110800377862356641023510, + "exact_repetitions": { + "1": 18583977627206085982336274304, + "12": 0, + "2": 1847908709208, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18583977627206087830244983512, + "12": 0, + "2": 1847908709208, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18583977627206085982336274304, + "target": 18 + }, + { + "cyclic_orbits": 257059303460644689291723950, + "exact_repetitions": { + "1": 18508269849166417629004124400, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18508269849166417629004124400, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18508269849166417629004124400, + "target": 19, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 258087010347541230358057932, + "exact_repetitions": { + "1": 18582264745022964451498800480, + "12": 0, + "2": 2067103403856, + "24": 0, + "3": 24823680, + "4": 22320, + "6": 432, + "8": 0 + }, + "fixed": { + "1": 18582264745022966518627050768, + "12": 0, + "2": 2067103426608, + "24": 0, + "3": 24824112, + "4": 22320, + "6": 432, + "8": 0 + }, + "primitive_words": 18582264745022964451498800480, + "target": 20 + }, + { + "cyclic_orbits": 257080685211340325929350852, + "exact_repetitions": { + "1": 18509809335216503466913261344, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18509809335216503466913261344, + "12": 0, + "2": 0, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18509809335216503466913261344, + "target": 21 + }, + { + "cyclic_orbits": 258090869803456809998857720, + "exact_repetitions": { + "1": 18582542625848886809577815472, + "12": 0, + "2": 1755169970184, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18582542625848888564747785656, + "12": 0, + "2": 1755169970184, + "24": 0, + "3": 0, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18582542625848886809577815472, + "target": 22 + }, + { + "cyclic_orbits": 257049353734391496102612890, + "exact_repetitions": { + "1": 18507553468876187719347368592, + "12": 0, + "2": 0, + "24": 0, + "3": 13586496, + "4": 0, + "6": 0, + "8": 0 + }, + "fixed": { + "1": 18507553468876187719360955088, + "12": 0, + "2": 0, + "24": 0, + "3": 13586496, + "4": 0, + "6": 0, + "8": 0 + }, + "primitive_words": 18507553468876187719347368592, + "target": 23, + "unit_repeated_words": 13586496 + } + ], + "3": [ + { + "cyclic_orbits": 30, + "exact_repetitions": { + "1": 270, + "3": 0 + }, + "fixed": { + "1": 270, + "3": 0 + }, + "primitive_words": 270, + "target": 0 + }, + { + "cyclic_orbits": 4, + "exact_repetitions": { + "1": 18, + "3": 6 + }, + "fixed": { + "1": 24, + "3": 6 + }, + "primitive_words": 18, + "target": 1, + "unit_repeated_words": 6 + }, + { + "cyclic_orbits": 0, + "exact_repetitions": { + "1": 0, + "3": 0 + }, + "fixed": { + "1": 0, + "3": 0 + }, + "primitive_words": 0, + "target": 2, + "unit_repeated_words": 0 + } + ], + "4": [ + { + "cyclic_orbits": 201, + "exact_repetitions": { + "1": 2328, + "2": 42, + "4": 0 + }, + "fixed": { + "1": 2370, + "2": 42, + "4": 0 + }, + "primitive_words": 2328, + "target": 0 + }, + { + "cyclic_orbits": 18, + "exact_repetitions": { + "1": 216, + "2": 0, + "4": 0 + }, + "fixed": { + "1": 216, + "2": 0, + "4": 0 + }, + "primitive_words": 216, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 36, + "exact_repetitions": { + "1": 432, + "2": 0, + "4": 0 + }, + "fixed": { + "1": 432, + "2": 0, + "4": 0 + }, + "primitive_words": 432, + "target": 2 + }, + { + "cyclic_orbits": 0, + "exact_repetitions": { + "1": 0, + "2": 0, + "4": 0 + }, + "fixed": { + "1": 0, + "2": 0, + "4": 0 + }, + "primitive_words": 0, + "target": 3, + "unit_repeated_words": 0 + } + ], + "5": [ + { + "cyclic_orbits": 1032, + "exact_repetitions": { + "1": 15450, + "5": 6 + }, + "fixed": { + "1": 15456, + "5": 6 + }, + "primitive_words": 15450, + "target": 0 + }, + { + "cyclic_orbits": 356, + "exact_repetitions": { + "1": 5340, + "5": 0 + }, + "fixed": { + "1": 5340, + "5": 0 + }, + "primitive_words": 5340, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 426, + "exact_repetitions": { + "1": 6390, + "5": 0 + }, + "fixed": { + "1": 6390, + "5": 0 + }, + "primitive_words": 6390, + "target": 2, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 200, + "exact_repetitions": { + "1": 3000, + "5": 0 + }, + "fixed": { + "1": 3000, + "5": 0 + }, + "primitive_words": 3000, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 198, + "exact_repetitions": { + "1": 2970, + "5": 0 + }, + "fixed": { + "1": 2970, + "5": 0 + }, + "primitive_words": 2970, + "target": 4, + "unit_repeated_words": 0 + } + ], + "6": [ + { + "cyclic_orbits": 12043, + "exact_repetitions": { + "1": 216774, + "2": 0, + "3": 0, + "6": 0 + }, + "fixed": { + "1": 216774, + "2": 0, + "3": 0, + "6": 0 + }, + "primitive_words": 216774, + "target": 0 + }, + { + "cyclic_orbits": 2240, + "exact_repetitions": { + "1": 40320, + "2": 0, + "3": 0, + "6": 0 + }, + "fixed": { + "1": 40320, + "2": 0, + "3": 0, + "6": 0 + }, + "primitive_words": 40320, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 5391, + "exact_repetitions": { + "1": 96912, + "2": 0, + "3": 42, + "6": 0 + }, + "fixed": { + "1": 96954, + "2": 0, + "3": 42, + "6": 0 + }, + "primitive_words": 96912, + "target": 2 + }, + { + "cyclic_orbits": 3346, + "exact_repetitions": { + "1": 60228, + "2": 0, + "3": 0, + "6": 0 + }, + "fixed": { + "1": 60228, + "2": 0, + "3": 0, + "6": 0 + }, + "primitive_words": 60228, + "target": 3 + }, + { + "cyclic_orbits": 4716, + "exact_repetitions": { + "1": 84888, + "2": 0, + "3": 0, + "6": 0 + }, + "fixed": { + "1": 84888, + "2": 0, + "3": 0, + "6": 0 + }, + "primitive_words": 84888, + "target": 4 + }, + { + "cyclic_orbits": 1240, + "exact_repetitions": { + "1": 22320, + "2": 0, + "3": 0, + "6": 0 + }, + "fixed": { + "1": 22320, + "2": 0, + "3": 0, + "6": 0 + }, + "primitive_words": 22320, + "target": 5, + "unit_repeated_words": 0 + } + ], + "7": [ + { + "cyclic_orbits": 77952, + "exact_repetitions": { + "1": 1636950, + "7": 6 + }, + "fixed": { + "1": 1636956, + "7": 6 + }, + "primitive_words": 1636950, + "target": 0 + }, + { + "cyclic_orbits": 52494, + "exact_repetitions": { + "1": 1102374, + "7": 0 + }, + "fixed": { + "1": 1102374, + "7": 0 + }, + "primitive_words": 1102374, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 58634, + "exact_repetitions": { + "1": 1231314, + "7": 0 + }, + "fixed": { + "1": 1231314, + "7": 0 + }, + "primitive_words": 1231314, + "target": 2, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 53286, + "exact_repetitions": { + "1": 1119006, + "7": 0 + }, + "fixed": { + "1": 1119006, + "7": 0 + }, + "primitive_words": 1119006, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 57822, + "exact_repetitions": { + "1": 1214262, + "7": 0 + }, + "fixed": { + "1": 1214262, + "7": 0 + }, + "primitive_words": 1214262, + "target": 4, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 41422, + "exact_repetitions": { + "1": 869862, + "7": 0 + }, + "fixed": { + "1": 869862, + "7": 0 + }, + "primitive_words": 869862, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 50112, + "exact_repetitions": { + "1": 1052352, + "7": 0 + }, + "fixed": { + "1": 1052352, + "7": 0 + }, + "primitive_words": 1052352, + "target": 6, + "unit_repeated_words": 0 + } + ], + "8": [ + { + "cyclic_orbits": 1227397, + "exact_repetitions": { + "1": 29452704, + "2": 2328, + "4": 42, + "8": 0 + }, + "fixed": { + "1": 29455074, + "2": 2370, + "4": 42, + "8": 0 + }, + "primitive_words": 29452704, + "target": 0 + }, + { + "cyclic_orbits": 589596, + "exact_repetitions": { + "1": 14150304, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 14150304, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 14150304, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 904092, + "exact_repetitions": { + "1": 21697776, + "2": 216, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 21697992, + "2": 216, + "4": 0, + "8": 0 + }, + "primitive_words": 21697776, + "target": 2 + }, + { + "cyclic_orbits": 578866, + "exact_repetitions": { + "1": 13892784, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 13892784, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 13892784, + "target": 3, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 1034356, + "exact_repetitions": { + "1": 24823680, + "2": 432, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 24824112, + "2": 432, + "4": 0, + "8": 0 + }, + "primitive_words": 24823680, + "target": 4 + }, + { + "cyclic_orbits": 566104, + "exact_repetitions": { + "1": 13586496, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 13586496, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 13586496, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 855742, + "exact_repetitions": { + "1": 20537808, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 20537808, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 20537808, + "target": 6 + }, + { + "cyclic_orbits": 502986, + "exact_repetitions": { + "1": 12071664, + "2": 0, + "4": 0, + "8": 0 + }, + "fixed": { + "1": 12071664, + "2": 0, + "4": 0, + "8": 0 + }, + "primitive_words": 12071664, + "target": 7, + "unit_repeated_words": 0 + } + ], + "9": [ + { + "cyclic_orbits": 13802576, + "exact_repetitions": { + "1": 372668742, + "3": 270, + "9": 0 + }, + "fixed": { + "1": 372669012, + "3": 270, + "9": 0 + }, + "primitive_words": 372668742, + "target": 0 + }, + { + "cyclic_orbits": 11024432, + "exact_repetitions": { + "1": 297659664, + "3": 0, + "9": 0 + }, + "fixed": { + "1": 297659664, + "3": 0, + "9": 0 + }, + "primitive_words": 297659664, + "target": 1, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 10818436, + "exact_repetitions": { + "1": 292097772, + "3": 0, + "9": 0 + }, + "fixed": { + "1": 292097772, + "3": 0, + "9": 0 + }, + "primitive_words": 292097772, + "target": 2, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 12742566, + "exact_repetitions": { + "1": 344049174, + "3": 18, + "9": 6 + }, + "fixed": { + "1": 344049198, + "3": 24, + "9": 6 + }, + "primitive_words": 344049174, + "target": 3 + }, + { + "cyclic_orbits": 11529154, + "exact_repetitions": { + "1": 311287158, + "3": 0, + "9": 0 + }, + "fixed": { + "1": 311287158, + "3": 0, + "9": 0 + }, + "primitive_words": 311287158, + "target": 4, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 10517934, + "exact_repetitions": { + "1": 283984218, + "3": 0, + "9": 0 + }, + "fixed": { + "1": 283984218, + "3": 0, + "9": 0 + }, + "primitive_words": 283984218, + "target": 5, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 12682472, + "exact_repetitions": { + "1": 342426744, + "3": 0, + "9": 0 + }, + "fixed": { + "1": 342426744, + "3": 0, + "9": 0 + }, + "primitive_words": 342426744, + "target": 6 + }, + { + "cyclic_orbits": 10556946, + "exact_repetitions": { + "1": 285037542, + "3": 0, + "9": 0 + }, + "fixed": { + "1": 285037542, + "3": 0, + "9": 0 + }, + "primitive_words": 285037542, + "target": 7, + "unit_repeated_words": 0 + }, + { + "cyclic_orbits": 10775546, + "exact_repetitions": { + "1": 290939742, + "3": 0, + "9": 0 + }, + "fixed": { + "1": 290939742, + "3": 0, + "9": 0 + }, + "primitive_words": 290939742, + "target": 8, + "unit_repeated_words": 0 + } + ] + }, + "repetition": { + "cases": 291408, + "max_modulus": 32, + "restored_pair_cases": 25680 + }, + "schema_version": 1, + "source_files_checked": 6, + "status": "PASS_CHAIN_CYCLIC_SCHEDULES", + "unit_cases": 179 +} diff --git a/research/chain-cyclic-schedules/OVERLAP.json b/research/chain-cyclic-schedules/OVERLAP.json new file mode 100644 index 0000000000..98c9616096 --- /dev/null +++ b/research/chain-cyclic-schedules/OVERLAP.json @@ -0,0 +1,86 @@ +{ + "reports": [ + { + "status": "POSSIBLE_OVERLAP_NOT_A_NOVELTY_CERTIFICATE", + "searched_at": "2026-10-28T04:37:32.369689+00:00", + "terms": [ + "chain-balanced-multiplicities", + "balanced correct-word", + "N13", + "chain-tariff" + ], + "coverage": { + "local": { + "head": "aa84f8b6993db3db34316d5925c1aa9cceee6724", + "records": 8350, + "head_records": 8350, + "complete_head_inventory": true, + "unsearched_head_paths": [] + }, + "open_prs": { + "fetched_at": "2026-10-28T04:30:11.879485+00:00", + "complete_pagination": true, + "records": 336 + }, + "discussions": { + "fetched_at": "2026-10-28T04:36:09.460193+00:00", + "complete_pagination": true, + "records": 5720 + }, + "closed_prs": { + "fetched_at": "2026-10-28T04:37:31.102839+00:00", + "complete_pagination": true, + "records": 5222 + } + }, + "warnings": [], + "limits": "Remote PR scope includes open and closed/merged titles and bodies, with separate coverage and timestamps. State changes are deduplicated by latest PR update; snapshots are not atomic. Local coverage compares searched working-tree notes with regular note paths at coverage.local.head; it does not certify HEAD contents or historical coverage. No code diffs or arbitrary package files are searched. Recheck relevant heads before submission.", + "matches_total": 60 + }, + { + "status": "POSSIBLE_OVERLAP_NOT_A_NOVELTY_CERTIFICATE", + "searched_at": "2026-10-28T04:40:02.241708+00:00", + "terms": [ + "necklace", + "chain rotation", + "periodic balanced", + "Burnside" + ], + "coverage": { + "local": { + "head": "721c03822c421b7f7fcbb2598993b947c4d88419", + "records": 8350, + "head_records": 8348, + "complete_head_inventory": true, + "unsearched_head_paths": [] + }, + "open_prs": { + "fetched_at": "2026-10-28T04:40:01.089897+00:00", + "complete_pagination": true, + "records": 338 + }, + "discussions": { + "fetched_at": "2026-10-28T04:36:09.460193+00:00", + "complete_pagination": true, + "records": 5720 + }, + "closed_prs": { + "fetched_at": "2026-10-28T04:37:31.102839+00:00", + "complete_pagination": true, + "records": 5222 + } + }, + "warnings": [], + "limits": "Remote PR scope includes open and closed/merged titles and bodies, with separate coverage and timestamps. State changes are deduplicated by latest PR update; snapshots are not atomic. Local coverage compares searched working-tree notes with regular note paths at coverage.local.head; it does not certify HEAD contents or historical coverage. No code diffs or arbitrary package files are searched. Recheck relevant heads before submission.", + "matches_total": 15 + } + ], + "inspected_nearest_prs": [ + 6037, + 4257, + 4281, + 4748 + ], + "added_value": "All-modulus depth-three rotation-period and unit-target repetition classification; no claim of new rotation closure, W census extension, or speedup.", + "limits": "Read-only coordination inspection; no reservation or Discussion claim posted. Metadata search does not certify novelty or inspect arbitrary historical diffs." +} diff --git a/research/chain-cyclic-schedules/PROOF.md b/research/chain-cyclic-schedules/PROOF.md new file mode 100644 index 0000000000..7074f032dd --- /dev/null +++ b/research/chain-cyclic-schedules/PROOF.md @@ -0,0 +1,204 @@ +# Cyclic classes of balanced depth-three chain schedules + +Prepared by SHIN09-git with substantial OpenAI Codex assistance. Apache-2.0. +This is a scoped combinatorial proof, with bounded exact corroboration. +It is not a new multiplication bound or a supplier admission. + +## Contract and credited starting point + +Work over a nonzero unital ring of exact characteristic m >= 2, with four +distinct roles x,z1,z2,y, arbitrary initial data, immutable x, and arbitrary +compatible linear maps. A chronological letter means one complete call: + +```text +1: z1 += B1 x 2: z2 += B2 z1 3: y += B3 z2. +``` + +A balanced word has m copies of each letter and length 3m. Let A(w), B(w), +T(w) count scattered 12, 23, 123 subsequences respectively. In the +predecessor's interval notation T is N13, not the count of the two-letter +subsequence 13. Nick Petalas's +[chain-tariff proof](source/chain-tariff-PROOF.md), building on #4249, +shows that the complete endpoint is correct for target c precisely when + +```text +A(w) = B(w) = 0 (mod m), T(w) = c (mod m). +``` + +Indeed the other three interval counts equal m. The interval expansion +gives every coefficient of every arbitrary dirty input, without commuting +the maps. We allow c=0 for the counting identities; it does not represent a +shortest nonzero-target connector. Write W(m,c) for the number of these +literal balanced words, with 0 <= c < m. + +Set W(1,0)=6 as an auxiliary combinatorial convention: all permutations of +123 meet vacuous congruences. We do not posit a nonzero ring of characteristic +one. This convention is necessary when a length-3m word repeats a length-3 +block m times. + +Cyclic rotation preserves correctness. This observation is already in +Petalas's [depth-five note](source/depth5-README.md), and is **not new here**. +One can either conjugate the central unitriangular endpoint by its first +generator, or move a leading letter to the end. A leading 1 changes A by -m +and T by -B; a leading 2 changes (A,B) by (m,-m) and leaves T unchanged; a +leading 3 changes B by m and T by A. All changes vanish modulo m at a correct +endpoint. + +The new application below classifies the rotation stabilizers at depth three. +Burnside's lemma and divisor Möbius inversion are classical tools, restated +with their counting arguments; no novelty is claimed for those tools. + +## 1. Exact repetition law + +Let d divide m and n=m/d. Let v have n copies of each letter, and put +a=A(v), b=B(v), t=T(v). Partition a subsequence according to the copies of v +containing its letters. Within one copy there are d choices; within two +ordered distinct copies there are binomial(d,2) choices; within three +distinct copies there are binomial(d,3) choices. Therefore, over the integers, + +```text +A(v^d) = d a + binomial(d,2) n^2, +B(v^d) = d b + binomial(d,2) n^2, +T(v^d) = d t + binomial(d,2) n (a+b) + binomial(d,3) n^3. (1) +``` + +The two arrangements using exactly two copies contribute a*n and n*b. + +**Pair gate.** If d is even and n is odd, the pair shift is +(d/2)(d-1)n^2, which is d/2 modulo d. Neither pair count can be divisible +by dn. Otherwise (d-1)n is even, and division by d makes the pair shift +((d-1)n/2)n, a multiple of n. Thus both pair conditions hold exactly when + +```text +(d is odd or n is even) and a = b = 0 (mod n). (2) +``` + +Under (2), write a+b=nk. The two-copy contribution in T, divided by dn, is +(d-1)nk/2, an integer. It vanishes modulo m, leaving the target condition + +```text +c = d t + binomial(d,3)n^3 (mod dn). (3) +``` + +In particular, the cubic shift cannot in general be discarded or divided +by d separately; for d=3 it need not be divisible by 3. + +## 2. Fixed points, least periods and cyclic counts for every m + +For d|m, define n=m/d, s=binomial(d,3)n^3, and + +```text +F_d(m,c) = 0, if d even and n odd; + = 0, if d does not divide c-s; + = W(n, ((c-s)/d) mod n), otherwise. (4) +``` + +All quotients here are exact integers. Replacing c by c+m does not change +the formula. + +**Theorem.** F_d is the number of correct words fixed by any rotation of +order d. The number E_d of correct words whose *maximal repetition factor* +is exactly d, hence whose least positive rotation period is 3m/d, is + +```text +E_d(m,c) = sum_{e: d|e|m} mu(e/d) F_e(m,c). (5) +``` + +Consequently the number O of cyclic classes, and the number P of primitive +words (least period 3m), are + +```text +O(m,c) = (1/(3m)) sum_{d|m} phi(d) F_d(m,c), +P(m,c) = E_1(m,c) = sum_{d|m} mu(d) F_d(m,c). (6) +``` + +**Proof.** A rotation of order d partitions 3m positions into cycles of +size d. A fixed balanced word therefore requires d|m. If d does not divide +m there are no fixed balanced words, even when d divides 3m. If d|m, the +subgroup generated by the rotation is the same as that generated by the +shift 3m/d. Its fixed words are uniquely v^d, where v has n of each letter. +Equations (2)--(3) prove (4). + +Every word has a unique maximal repetition factor r dividing m. It belongs +to F_d precisely when d|r, so F_d = sum_{d|r|m} E_r. For each word the +divisor sum sum_{k|r/d} mu(k) is one if r=d and zero otherwise. This proves +(5), including d=1. + +The cyclic group of order 3m has phi(d) rotations of each order d|3m. +Count pairs (word, rotation fixing it). Each orbit contributes 3m such +pairs, by orbit size times stabilizer size. The rotations with d not +dividing m contribute zero. This gives (6). Equivalently +O=sum_{d|m} E_d/(3m/d). QED. + +This is a transform of W, **not a closed formula for W itself**. It supplies +exact rotational deduplication counts and divisibility checks without +enumerating the length-3m words again. + +## 3. Sharp restriction for unit targets + +Assume 1 <= c < m and gcd(c,m)=1. Let R(m,c) count correct balanced words +with a nontrivial repetition. + +**Corollary.** A nonprimitive such word has maximal repetition factor +exactly 3. It can occur only when m=3n with 3 not dividing n and +c=n^3 (mod 3). In that case, set t0=((c-n^3)/3) mod n. Then + +```text +R(m,c) = W(n,t0). +``` + +In all other cases R(m,c)=0. Thus + +```text +P(m,c) = W(m,c)-R(m,c), +O(m,c) = (W(m,c)+2R(m,c))/(3m), +W(m,c)-R(m,c) = 0 (mod 3m). (7) +``` + +For n=1 the convention W(1,0)=6 applies. + +**Proof.** If a word repeats r>1 times, choose a prime p|r and view it as +u^p with m/p copies of each letter in u. For p=2, either the pair gate +fails or (3) makes c even. Both contradict correctness with a unit target. +For p>=5, all of p, binomial(p,2), binomial(p,3) are divisible by p, so (1) +makes c divisible by p. Thus r is a power of three. + +If 9|m, viewing the word as u^3 makes (3) give c=0 modulo 3, because +m/3 is divisible by 3. This is impossible. Therefore 3 divides m exactly +once, and r=3. Equation (4) counts the repeated words and gives the displayed +R. The shorter target t0 is a unit modulo n: since 3 is invertible modulo n, +3t0=c (mod n). The smaller base word has no nontrivial repetition by the +same argument (3 does not divide n). Each repeated word therefore has least +period 3n=m. All remaining words have least period 3m. Counting these two +orbit sizes proves (7). The condition is necessary for repetition; it does +not guarantee W(n,t0)>0. QED. + +## 4. Exact examples and boundaries + +For (m,c)=(3,1), W=24. Six words are triples of permutations of 123; +they make two orbits of size 3. The other 18 words make two orbits of size 9. +There are **four** cyclic classes, not 24/9. An explicit repeated correct +word is 123123123, with integer (A,B,T)=(6,6,10). + +For (4,0), W=2370: 42 words have repetition factor 2, and 2328 are +primitive. There are 42/6+2328/12=201 classes. The unit-target restriction +must therefore not be applied to arbitrary targets. + +For (5,1), all 5340 words are primitive and give 356 classes. For (6,5), +the necessary threefold-repetition congruence holds but W(2,1)=0, so every +one of the 22320 words is primitive. + +The high-modulus table is **derived from the frozen #6037 counts**, not +independently enumerated here. For example (15,8) has W=15776887005480630 +and R=W(5,1)=5340. Equation (7) gives 350597489010918 classes. Only the +small-m counts and the general proof receive the independent checks described +in README; the larger numerical rows inherit #6037's finite census. + +## Scope + +Rotation equivalence concerns the universal algebraic endpoint and balanced +letter counts. It is not equivalence of physical execution time, routing, +precision, workspace occupancy, boundary availability or admission cost. +No instruction is deleted or made free. The number of calls in each literal +word remains 3m. The theorem does not establish all-m distinctness of W, +asymptotic equidistribution, a faster census, a new supplier or any new kappa. diff --git a/research/chain-cyclic-schedules/README.md b/research/chain-cyclic-schedules/README.md new file mode 100644 index 0000000000..d301196c70 --- /dev/null +++ b/research/chain-cyclic-schedules/README.md @@ -0,0 +1,174 @@ +# Cyclic classes of balanced depth-three chain schedules + +A correct balanced schedule can have a shorter rotation period than its +length. This package proves an exact repetition law for every modulus and +uses it to count cyclic classes from the literal counts W(m,c). In particular, +**a unit-target schedule can repeat only three times**. The exception needs +m=3n, 3 not dividing n, and c=n^3 modulo 3. + +For example, at (m,c)=(3,1), the known 24 correct length-nine words form +**four cyclic classes**: two of size nine and two of size three. Dividing +24 by nine would be wrong. At (4,0), the 2370 words give 201 classes, including +seven classes of period six. [PROOF.md](PROOF.md) gives the complete formulas, +their proofs and the exact restrictions. + +This is a **scoped proof with finite exact corroboration**. It adds a +rotation-period classification and an exact counting transform to +[Nick Petalas's #6037](https://github.com/CrocSwap/integer-mult-bounds/pull/6037); +it does not extend that census's upper modulus or prove its all-m distinctness +conjecture. No new kappa, supplier, paid-profile saving or physical speedup +is claimed. + +## Result and useful boundary + +Let d|m, n=m/d and s=binomial(d,3)n^3. The number of words fixed by a rotation +of order d is zero if d is even and n odd, or if d does not divide c-s. +Otherwise it is W(n,((c-s)/d) mod n). Burnside's lemma gives the cyclic count; +divisor Möbius inversion gives every least-period count. The convention +W(1,0)=6 is combinatorial and makes no characteristic-one ring claim. + +For a unit target, let R=W(m/3,((c-(m/3)^3)/3) mod (m/3)) in the allowed +threefold case, and R=0 otherwise. The number of cyclic classes is + +```text +(W(m,c) + 2R) / (3m). +``` + +This gives a new all-m divisibility check W-R = 0 modulo 3m and a precise +way to deduplicate literal schedules. It does not compute W in closed form. +Rotations preserve the universal algebraic endpoint and letter counts; +they need not preserve routing, precision or word-dependent implementation +cost. No call is removed or priced as free. + +## Evidence and reproduction + +Python 3.12, standard library only, from the repository root: + +```sh +python3.12 -I -W error -B research/chain-cyclic-schedules/verify.py +python3.12 -I -O -W error -B research/chain-cyclic-schedules/verify.py +python3.12 -I -W error -B research/chain-cyclic-schedules/audit_mutations.py +python3.12 -B scripts/research_package.py --package research/chain-cyclic-schedules +``` + +The verifier is read-only. Its JSON receipt contains +`PASS_CHAIN_CYCLIC_SCHEDULES`, the exact result and every package file's SHA-256. +The mutation audit writes only temporary private copies and reports +`PASS_CHAIN_CYCLIC_MUTATIONS`. + +[EXPECTED.json](EXPECTED.json) is generated by an actual replay, not a +handwritten success receipt. The registered checks cover: + +- All **793,182** balanced words for m=1..5, by a position-based enumerator. + It independently counts every target, fixed-point population, least period + and cyclic class. There are 15 target cases; m=1 is only the auxiliary case. +- **536,472** rotations of correct words, checked by full four-role integer + unitriangular matrix execution, plus 1,776 position/matrix comparisons on + every word for m<=3. Every scalar dirty basis coefficient is retained. +- A separately implemented chronological residue DP for m=1..8. Every + intermediate count vector has its full multinomial mass checked. These + small-m literal counts and the DP independently reproduce the frozen W rows. +- **291,408** repeated-block tests: every balanced block with 1..4 copies + of each letter, repeated 1..8 times. All unreduced pair/triple identities, + parity gates and restored target shifts agree with a separate chronological + counter. The largest resulting modulus is 32. +- Exact transformed tables for m=1..24, all **179** unit-target cases, + nonnegative integral period populations, and agreement between Burnside and + the least-period orbit sum. **Rows above m=8 inherit #6037's counts**; + they are derived tables, not an independent high-m census. +- Eleven explicit false-claim controls and nine actual private-copy mutations, + each rejected in normal and optimized Python: seven formula changes, one + source-byte change and one expected-table change. Positive private-copy + probes pass in both modes. + +The initial full scientific replay took about 13 seconds locally on +CPython 3.12.10, Windows 11 x64. Normal and optimized registered replays and +publication checks are recorded in [VALIDATION.md](VALIDATION.md). Finite +tests corroborate the written proof; no proof-kernel or independent human +review is claimed. The two implementations were written by the same assisted +author. No selected-supplier cold replay or full m=2..24 predecessor census +is included. + +## Sources and overlap + +Scientific base: `721c03822c421b7f7fcbb2598993b947c4d88419`, priority revision 8. +The selected record at that base remains #6030, kappa +`781451/250000000`. The catalog's `connector-alphabet-change` card is retained +verbatim in [TASK.json](TASK.json), with **scope_status=changed**: this is a +counting side question in the unchanged alphabet. It supplies an exact +rotation-equivalence audit, not a favorable completed supplier budget. +The direct starting fixture is #6037's small-m count table. The card's +945-pairing baseline was also reproduced as orientation; it does not verify +this period theorem. The extra-operation construction experiment is +inapplicable to this changed scope. + +Exact source pins and retained-byte hashes are in [SOURCES.json](SOURCES.json). +The verifier consumes frozen package-local copies, so it needs neither a Git +repository nor network access. The original upstream head from #6037 is +`88331a098ad9f0299e205bb103acc55b2dc087df`. Its source table is not silently +replaced by a later PR head. The two consumed files are retained byte-for-byte +in publication ancestor `ccff0fb7ed8f53a686a3f2ecc2a5585d7bd8a505`; executable +source pins resolve to those retained blobs. `upstream_origin` keeps their +original paths, head, Git blobs and credit. A clean checkout does not need +the pending predecessor's separate Git object. + +[OVERLAP.json](OVERLAP.json) records the bounded search and its coverage. +Initial searches covered open and closed/merged PR titles/bodies, Discussion +records and local research notes, plus explicit live searches for necklaces, +Burnside, balanced rotations and periodic multiplicities. This does not +cover all historical diffs, arbitrary files or unpublished work. + +The nearest prior results are: + +- [#6037](https://github.com/CrocSwap/integer-mult-bounds/pull/6037): literal + W(m,c) counts through 24 and finite unit-symmetry breaking. New here: + all-m period law, exact rotation quotient, unit-target exception. +- [#4257](https://github.com/CrocSwap/integer-mult-bounds/pull/4257): + full depth-three count-vector/tariff classification and literal + multiplicities. It explicitly does not quotient rotations. +- [#4281](https://github.com/CrocSwap/integer-mult-bounds/pull/4281): + depth-five minima and witnesses, including the credited rotation-closure + observation. The closure observation is not claimed new. +- [#4748](https://github.com/CrocSwap/integer-mult-bounds/pull/4748): + ten shortest binary depth-six words forming one rotation class. This is + a different fixed-depth, fixed-characteristic classification. + +## Implementation bounds + +All loops in the registered driver have explicit finite bounds. Literal +enumeration stops at m=5 (756,756 words in the largest case); the residue DP +stops at m=8, with at most two layers of 81 dictionaries, each with at most +512 residue keys. The repetition driver stops at 96 letters. The largest +retained numerical table is m=24. Arithmetic uses Python exact integers. +There is no stochastic search, external solver or runtime network request. + +Python dynamically allocates bounded tuples, dictionaries and integers; +this is the declared managed-runtime deviation from allocation-free coding. +The mathematical proof is uniform; the program is a bounded checker and does +not claim to execute every modulus. The mutation runner uses at most 20 +sequential bounded child probes, never concurrent scientific replays. + +## Credit + +Nick Petalas supplied #6037, the chain interval/tariff work and the depth-five +and depth-six rotation precedents. Ross Richardson's #943/#934 lineage +supplied the complete-call dirty-connector interface. Their retained source +notices and Apache-2.0 license are preserved in source/. Classical +subsequence counting, Burnside's lemma and Möbius inversion are credited +mathematical tools, not original algorithms. + +New proof, implementation and writing prepared for **SHIN09-git with +substantial OpenAI Codex assistance**. No independent human review or global +literature-priority claim. Apache-2.0. + +## Open next questions + +1. Can the least-period transform be used to construct a generator of one + representative per valid cyclic class with less work than literal + enumeration? Start at m=5 with the 356 classes for c=1 and count all work, + including prefix validity and canonicalization. The formula alone does + not provide an efficient generator or prove a speedup. +2. At depth four, what exact repetition conditions replace the depth-three + parity gate and cubic shift? Start with the unreduced interval counts of + v^d and keep all lower interval constraints. The depth-three argument does + not extend by merely replacing three by four. diff --git a/research/chain-cyclic-schedules/SOURCES.json b/research/chain-cyclic-schedules/SOURCES.json new file mode 100644 index 0000000000..3d00b1c558 --- /dev/null +++ b/research/chain-cyclic-schedules/SOURCES.json @@ -0,0 +1,76 @@ +{ + "schema_version": 1, + "base_commit": "721c03822c421b7f7fcbb2598993b947c4d88419", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "d59b5035e7b4cbaa9d688a1d32dd0d6eb79c466a", + "sha256": "9b8d0eea95b3bf0dfcb7938a732a6439b87a2685dec2a5ab9e525b3b34debbfa" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81" + }, + { + "path": "research/chain-cyclic-schedules/source/6037-README.md", + "usage": "provenance", + "git_blob": "c432642716a84cc187bbadf6365744254abd0e8d", + "sha256": "b0e0e9ea6787702ab8f8e83dff521f5082c64a1ca7129be940b1b671a2f65423", + "vendored_as": "source/6037-README.md", + "pin": "head:ccff0fb7ed8f53a686a3f2ecc2a5585d7bd8a505:research/chain-cyclic-schedules/source/6037-README.md", + "upstream_origin": { + "commit": "88331a098ad9f0299e205bb103acc55b2dc087df", + "path": "research/chain-balanced-multiplicities/README.md", + "git_blob": "c432642716a84cc187bbadf6365744254abd0e8d", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/6037", + "credit": "Nick Petalas" + } + }, + { + "path": "research/chain-cyclic-schedules/source/6037-RESULT.json", + "usage": "provenance", + "git_blob": "506af526b6779b83e44851130084833022d15684", + "sha256": "bc762de01371b93d846a3c0a391de938ef31f6906333b410068319cfc39f5419", + "vendored_as": "source/6037-RESULT.json", + "pin": "head:ccff0fb7ed8f53a686a3f2ecc2a5585d7bd8a505:research/chain-cyclic-schedules/source/6037-RESULT.json", + "upstream_origin": { + "commit": "88331a098ad9f0299e205bb103acc55b2dc087df", + "path": "research/chain-balanced-multiplicities/RESULT.json", + "git_blob": "506af526b6779b83e44851130084833022d15684", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/6037", + "credit": "Nick Petalas" + } + }, + { + "path": "research/chain-tariff/PROOF.md", + "usage": "provenance", + "git_blob": "d56fe647b056fb21360dd35dc2488feb770956e1", + "sha256": "14438bfb8f37d663a011dd47517fff83bca6447f37ffc5dfd433f88f4cbacb8b", + "vendored_as": "source/chain-tariff-PROOF.md" + }, + { + "path": "research/depth5-chain-connector/README.md", + "usage": "provenance", + "git_blob": "90f3d537de0b6f8b78efff6f4e07ceb8a7fcd90a", + "sha256": "4f65caff2edde24b48341f20d022e058debb067336807d4205366163ac61629d", + "vendored_as": "source/depth5-README.md" + }, + { + "path": "research/depth6-binary-chain/README.md", + "usage": "provenance", + "git_blob": "33662ab27a770fba9a83bf2a3a18ac9b7234c5c3", + "sha256": "494ed1cf437e96e73053cf9836e6859ad85701a75690dfcbbd09d3e9da58d506", + "vendored_as": "source/depth6-README.md" + }, + { + "path": "LICENSE", + "usage": "provenance", + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendored_as": "source/LICENSE" + } + ] +} diff --git a/research/chain-cyclic-schedules/TASK.json b/research/chain-cyclic-schedules/TASK.json new file mode 100644 index 0000000000..f69c0df854 --- /dev/null +++ b/research/chain-cyclic-schedules/TASK.json @@ -0,0 +1,68 @@ +{ + "schema_version": 1, + "task_id": "connector-alphabet-change", + "priority_revision": 8, + "base_commit": "721c03822c421b7f7fcbb2598993b947c4d88419", + "original_card": { + "id": "connector-alphabet-change", + "question": "Does one explicit extension of the connector alphabet offer a favorable completed budget?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/universal-connector-boundary/README.md", + "certificates/selected-result.json" + ], + "methods": [ + "Construct and charge a legal extra operation on a minimal instance.", + "Prove a target-specific bound after adding one specified operation family." + ], + "acceptance_gate": "State which fixed-alphabet premise changes and charge its implementation; do not declare it free. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/universal-connector-boundary/verify.py" + ], + "expected": "PASS_UNIVERSAL_CONNECTOR_BOUNDARY", + "inspect": "Reproduce the 945-pairing control, then read Exact interface to list the allowed calls.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Add exactly one legally priced operation and test a tiny dirty-input instance before enumerating larger cases.", + "bottleneck_link": "A new legal connector operation could change recursive interface cost; a larger census in the same alphabet is a separate side result.", + "allowed_variations": [ + "Choose one additional operation and a small source count for its first counterexample." + ], + "scope_change_triggers": [ + "Keeping the alphabet and only increasing the source count; record this as a changed assignment.", + "Extending a source-count census without naming a supplier/interface decision it could change; audit #2973 pruning concerns before relying on the affected predecessor exclusions." + ], + "overlap_terms": [ + "universal connector", + "source-toggle", + "connector alphabet" + ] + }, + "scope_status": "changed", + "actual_scope": "Classify all rotation periods of balanced correct depth-three chain words; derive fixed-point, cyclic-class and primitive-word counts from W(m,c), with a sharp unit-target repetition corollary.", + "scope_change_reason": "The alphabet and source count stay fixed. This follows the unresolved combinatorics behind PR6037, not the card's extra-operation construction. It is an algebraic counting side result with explicit credit for earlier rotation closure.", + "bottleneck_link": "An exact quotient prevents invalid rotational deduplication and gives all-modulus divisibility controls for future connector censuses. It changes neither the complete-call tariff nor the selected supplier budget; no kappa improvement or measured speedup.", + "budget_minutes": 60, + "stop_rule": "Finish the all-modulus depth-three proof, exhaustive m<=5 orbit checks, DP m<=8, repeat blocks n<=4,d<=8, bounded mutation controls and package publication. Do not extend the predecessor high-modulus census or physical supplier construction.", + "outcome": "completed", + "evidence": "PROOF.md; generated EXPECTED.json; exact literal/matrix/DP checks; 11 false-claim controls and nine actual source/expected/code mutations checked in both interpreter modes.", + "author": "SHIN09-git with substantial OpenAI Codex assistance", + "ai_assistance": "Substantial OpenAI Codex assistance in source reading, mathematical derivation, code, validation and writing. Single assisted author; no independent human or proof-kernel review.", + "open_questions": [ + { + "question": "Can a valid cyclic representative generator improve on literal enumeration?", + "why_it_matters": "The exact quotient specifies how many distinct classes a future census must produce, but gives no runtime gain itself.", + "first_step": "Build and fully price a generator at (m,c)=(5,1), checking all 356 classes against the literal oracle.", + "blocked_by": "No prefix-safe representative generator or measured total-cost analysis is supplied." + }, + { + "question": "What is the exact depth-four repetition gate?", + "why_it_matters": "Higher-depth rotation quotients require all lower interval constraints, not just letter balance.", + "first_step": "Expand every interval count of v^d over the integers and derive necessary divisibility gates.", + "blocked_by": "The depth-three two-pair cancellation does not establish the depth-four formula." + } + ] +} diff --git a/research/chain-cyclic-schedules/VALIDATION.md b/research/chain-cyclic-schedules/VALIDATION.md new file mode 100644 index 0000000000..5dc9a46402 --- /dev/null +++ b/research/chain-cyclic-schedules/VALIDATION.md @@ -0,0 +1,63 @@ +# Validation record + +Environment: CPython 3.12.10 (64-bit), Windows 11 build 26100. +Scientific base: 721c03822c421b7f7fcbb2598993b947c4d88419. +All commands below run sequentially; there are no concurrent scientific replays. + +## Completed scientific checks + +The package's registered driver completed successfully: + +```sh +python -X utf8 -B scripts/research_package.py --package research/chain-cyclic-schedules +``` + +It ran full isolated normal and optimized replay, then the private-copy +mutation audit. Both full replays returned the same mathematical object +in EXPECTED.json. Nine actual mutations were rejected in each mode, with +two passing unchanged probes. The parity-gate mutation is detected by the +separate literal orbit counter, not only by the retained expected table. + +The initial generated replay took 13.125 seconds. This is one local timing, +not a benchmark against #6037 or a speedup claim. Evidence domains and +exact counts are in README.md and EXPECTED.json. + +The metadata/source-pin check passed. Source bytes were read from their exact +Git objects and frozen unchanged. Six frozen source files are checked on every +scientific replay, including the predecessor table and retained license. + +The card orientation check also passed: + +```text +PASS_UNIVERSAL_CONNECTOR_BOUNDARY pairings=945 max_coverage=31 queries=74 leaves=182 +``` + +It is orientation only; neither that baseline nor the source W table is +presented as an independent proof of the new formulas. + +## Known shared-check boundary + +The unmodified canonical base fails two of the six tests in +test_research_current_status.py: current CI navigation is still for #5599, +and a current-status bold-decimal expectation does not match the fraction +format. The same failures were reproduced in this branch; none of the +affected files is changed here. The separate open +[PR #6050](https://github.com/CrocSwap/integer-mult-bounds/pull/6050), +head 41ac3a47b91b4184e6c54af417bf576bfb429926, repairs these shared docs. +A failed hosted plan must not be reported as a failed period theorem. + +The selected-record verifier was attempted but could not run in this sparse +checkout because its 1,405-file selected inventory is not fully materialized. +The optional inventory materialization probe was stopped. No selected-record +verification or selected-supplier cold replay is claimed. The selected +record, its inventory and all supplier files are unchanged in this patch. + +## Scope of confidence + +The written proof is not checked by a formal kernel or an independent human. +The position enumerator, chronological DP and formulas have different +implementations but were written by the same assisted author. Literal +counting is exhaustive only through m=5; independent DP stops at m=8. +Numerical tables through m=24 above that range inherit the frozen #6037 counts. +No physical hosting, precision, routing, compiler or outer-bound claim is +tested or changed here. diff --git a/research/chain-cyclic-schedules/VERIFY.json b/research/chain-cyclic-schedules/VERIFY.json new file mode 100644 index 0000000000..f99faf1592 --- /dev/null +++ b/research/chain-cyclic-schedules/VERIFY.json @@ -0,0 +1,46 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-W", + "error", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 180, + "checks": "All literal/DP/repetition and period checks, source hashes, generated expected evidence." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-W", + "error", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 180, + "checks": "Identical full scientific checks with assertions disabled." + }, + { + "argv": [ + "{python}", + "-I", + "-W", + "error", + "-B", + "{package}/audit_mutations.py" + ], + "timeout_seconds": 180, + "checks": "Nine actual private-copy code/data mutations rejected in normal and optimized modes; positive copied probes pass." + } + ] +} diff --git a/research/chain-cyclic-schedules/audit_mutations.py b/research/chain-cyclic-schedules/audit_mutations.py new file mode 100644 index 0000000000..83f5ab49de --- /dev/null +++ b/research/chain-cyclic-schedules/audit_mutations.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 +"""Mutate private copies, then reject via literal counts and expected periods. +SHIN09-git with substantial OpenAI Codex assistance. Apache-2.0. +""" +import hashlib +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile + +HERE = Path(__file__).resolve().parent +PROBE = """ +import json,sys +from pathlib import Path +p=Path(__file__).resolve().parent +sys.path.insert(0,str(p)) +import verify +from oracle import literal_census +verify.check_sources() +rows=verify.source_rows() +table,_=verify.all_period_rows(rows) +expected=json.loads((p/'EXPECTED.json').read_text()) +for m in range(1,5): + actual=literal_census(m) + for c in range(m): + row=table[str(m)][c] + if row['cyclic_orbits'] != actual['orbits'][c]: + raise ValueError('literal orbit mismatch') + for d in actual['fixed']: + if row['fixed'][str(d)] != actual['fixed'][d][c]: + raise ValueError('literal fixed-point mismatch') +if table != expected['period_counts']: + raise ValueError('period table differs from retained computation') +print('PASS_MUTATION_PROBE') +""" +MUTATIONS = [ + ("pair_gate", "periods.py", "if d % 2 == 0 and n % 2 == 1:", "if False:"), + ("cubic_shift", "periods.py", "delta = c - comb(d, 3) * n**3", "delta = c"), + ("shift_sign", "periods.py", "delta = c - comb(d, 3) * n**3", "delta = c + comb(d, 3) * n**3"), + ("divisibility", "periods.py", "if delta % d:", "if False:"), + ("totient_weight", "periods.py", "phi(d) * fixed[d]", "fixed[d]"), + ("mobius_sign", "periods.py", "result = -result", "result = result"), + ("unit_all_primitive", "periods.py", "return rows[n][((c - n**3) // 3) % n]", "return 0"), + ("source_tamper", "source/6037-RESULT.json", '"6741578652"', '"6741578653"'), + ("expected_tamper", "EXPECTED.json", '"cyclic_orbits": 7,', '"cyclic_orbits": 8,'), +] + + +def run_probe(folder, optimized): + argv = [sys.executable, "-I", "-W", "error", "-B"] + if optimized: + argv.append("-O") + result = subprocess.run(argv + [str(folder / "probe.py")], cwd=folder, + capture_output=True, text=True, timeout=120) + return result + + +def main(): + source_hashes = {path.relative_to(HERE).as_posix(): hashlib.sha256(path.read_bytes()).hexdigest() + for path in HERE.rglob("*") if path.is_file() and "__pycache__" not in path.parts} + evidence = [] + with tempfile.TemporaryDirectory(prefix="chain-cyclic-controls-") as tmp: + baseline = Path(tmp) / "baseline" + shutil.copytree(HERE, baseline, ignore=shutil.ignore_patterns("__pycache__")) + (baseline / "probe.py").write_text(PROBE, encoding="utf-8") + for optimized in (False, True): + control = run_probe(baseline, optimized) + if control.returncode or control.stdout.strip() != "PASS_MUTATION_PROBE": + raise ValueError("positive mutation probe failed: " + control.stderr) + for name, relative, old, new in MUTATIONS: + changed = Path(tmp) / name + shutil.copytree(baseline, changed) + path = changed / relative + original = path.read_text(encoding="utf-8") + if original.count(old) != 1: + raise ValueError("mutation anchor must be unique: " + name) + path.write_text(original.replace(old, new), encoding="utf-8") + for optimized in (False, True): + result = run_probe(changed, optimized) + if result.returncode == 0 or "ValueError:" not in result.stderr: + raise ValueError("mutation was not semantically rejected: " + name) + reason = result.stderr.strip().splitlines()[-1] + evidence.append(dict(mutation=name, optimized=optimized, reason=reason)) + print(json.dumps(dict(status="PASS_CHAIN_CYCLIC_MUTATIONS", + positive_probes=2, rejections=evidence, + input_sha256=source_hashes), sort_keys=True)) + + +if __name__ == "__main__": + main() diff --git a/research/chain-cyclic-schedules/oracle.py b/research/chain-cyclic-schedules/oracle.py new file mode 100644 index 0000000000..38dceb43c9 --- /dev/null +++ b/research/chain-cyclic-schedules/oracle.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python3 +"""Literal position enumeration and matrices; independent of period formulas. +SHIN09-git with OpenAI Codex assistance. Apache-2.0. +""" +from bisect import bisect_left, bisect_right +from collections import Counter +from itertools import combinations +from math import factorial + + +def words(n): + positions = tuple(range(3 * n)) + for ones in combinations(positions, n): + one_set = set(ones) + remaining = tuple(x for x in positions if x not in one_set) + for twos in combinations(remaining, n): + two_set = set(twos) + threes = tuple(x for x in remaining if x not in two_set) + word = tuple(1 if x in one_set else 2 if x in two_set else 3 + for x in positions) + # Sum over the middle-letter positions; no chronological DP. + pairs = [(bisect_left(ones, j), n - bisect_right(threes, j)) + for j in twos] + yield word, (sum(a for a, b in pairs), sum(b for a, b in pairs), + sum(a * b for a, b in pairs)) + + +def matrix_counts(word): + # Full lower unitriangular action on the four arbitrary scalar input roles. + matrix = [[int(i == j) for j in range(4)] for i in range(4)] + for letter in word: + matrix[letter] = [a + b for a, b in + zip(matrix[letter], matrix[letter - 1])] + return matrix[2][0], matrix[3][1], matrix[3][0] + + +def least_period(word): + # Search all possible shifts, without the theorem's divisor restriction. + for k in range(1, len(word) + 1): + if word == word[k:] + word[:k]: + return k + raise ValueError("missing identity rotation") + + +def literal_census(m): + rows = [0] * m + fixed = {d: [0] * m for d in range(1, m + 1) if m % d == 0} + periods = [Counter() for _ in range(m)] + necklaces = [set() for _ in range(m)] + total = checked_rotations = matrix_checks = 0 + for word, (a, b, t) in words(m): + total += 1 + if m <= 3: + if matrix_counts(word) != (a, b, t): + raise ValueError("position/matrix count disagreement") + matrix_checks += 1 + if a % m or b % m: + continue + c = t % m + rows[c] += 1 + period = least_period(word) + periods[c][len(word) // period] += 1 + rotations = [word[k:] + word[:k] for k in range(len(word))] + necklaces[c].add(min(rotations)) + for rotated in rotations: + ra, rb, rt = matrix_counts(rotated) + if ra % m or rb % m or rt % m != c: + raise ValueError("literal rotation changed correctness") + checked_rotations += 1 + for d in fixed: + k = len(word) // d + if word == word[k:] + word[:k]: + fixed[d][c] += 1 + expected = factorial(3 * m) // factorial(m)**3 + if total != expected: + raise ValueError("literal multinomial mass") + return dict(counts=rows, fixed=fixed, exact=periods, + orbits=[len(x) for x in necklaces], total=total, + rotations=checked_rotations, matrix_checks=matrix_checks) + + +def chronological_counts(word): + n1 = n2 = a = b = t = 0 + for letter in word: + if letter == 1: + n1 += 1 + elif letter == 2: + n2 += 1 + a += n1 + else: + b += n2 + t += a + return a, b, t + + +def residue_dp(m): + # Rolling first-letter layers, retaining all three residues and all masses. + previous = {} + for i in range(m + 1): + current = {} + for j in range(m + 1): + for k in range(m + 1): + result = Counter() + if i == j == k == 0: + result[(0, 0, 0)] = 1 + if i: + result.update(previous[j, k]) + if j: + for (a, b, t), value in current[j - 1, k].items(): + result[((a + i) % m, b, t)] += value + if k: + for (a, b, t), value in current[j, k - 1].items(): + result[(a, (b + j) % m, (t + a) % m)] += value + mass = factorial(i + j + k) // (factorial(i) * factorial(j) * factorial(k)) + if sum(result.values()) != mass: + raise ValueError("DP multinomial mass") + current[j, k] = result + previous = current + return [previous[m, m][0, 0, c] for c in range(m)] diff --git a/research/chain-cyclic-schedules/periods.py b/research/chain-cyclic-schedules/periods.py new file mode 100644 index 0000000000..fd11d4bdf7 --- /dev/null +++ b/research/chain-cyclic-schedules/periods.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 +"""Exact depth-three repetition/orbit formulas. SHIN09-git + OpenAI Codex. +Apache-2.0. All checks remain active under Python -O. +""" +from math import comb, gcd + + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def divisors(m): + require(isinstance(m, int) and 1 <= m <= 128, "modulus outside 1..128") + return [d for d in range(1, m + 1) if m % d == 0] + + +def mobius(n): + result, p = 1, 2 + while p * p <= n: + if n % p == 0: + n //= p + result = -result + if n % p == 0: + return 0 + p += 1 + return -result if n > 1 else result + + +def phi(n): + return sum(gcd(k, n) == 1 for k in range(1, n + 1)) + + +def repeated_counts(n, d, a, b, t): + """Unreduced integer pair/triple counts of v**d.""" + pair_shift = comb(d, 2) * n * n + return (d * a + pair_shift, d * b + pair_shift, + d * t + comb(d, 2) * n * (a + b) + comb(d, 3) * n**3) + + +def fixed_count(m, c, d, rows): + """Fixed points of a rotation of order d, for d dividing m.""" + require(d in divisors(m) and 0 <= c < m, "invalid fixed-point argument") + n = m // d + if d % 2 == 0 and n % 2 == 1: + return 0 + delta = c - comb(d, 3) * n**3 + if delta % d: + return 0 + return rows[n][(delta // d) % n] + + +def period_row(m, c, rows): + ds = divisors(m) + fixed = {d: fixed_count(m, c, d, rows) for d in ds} + exact = {d: sum(mobius(e // d) * fixed[e] for e in ds if e % d == 0) + for d in ds} + for d in ds: + require(exact[d] >= 0, "negative exact-period population") + require(exact[d] % (3 * m // d) == 0, "nonintegral exact-period orbit count") + require(sum(exact.values()) == rows[m][c], "period partition does not sum to W") + weighted = sum(phi(d) * fixed[d] for d in ds) + require(weighted % (3 * m) == 0, "nonintegral Burnside count") + orbits = weighted // (3 * m) + require(orbits == sum(exact[d] // (3 * m // d) for d in ds), + "Burnside and exact-period counts disagree") + return dict(fixed={str(k): v for k, v in fixed.items()}, + exact_repetitions={str(k): v for k, v in exact.items()}, + primitive_words=exact[1], cyclic_orbits=orbits) + + +def unit_repeated_count(m, c, rows): + require(m >= 2 and 0 < c < m and gcd(c, m) == 1, "target must be a unit") + if m % 3 or m % 9 == 0: + return 0 + n = m // 3 + if (c - n**3) % 3: + return 0 + return rows[n][((c - n**3) // 3) % n] + + +def check_unit_row(m, c, rows, row): + repeated = unit_repeated_count(m, c, rows) + require(row["primitive_words"] == rows[m][c] - repeated, "unit primitive formula") + require(row["cyclic_orbits"] * (3 * m) == rows[m][c] + 2 * repeated, + "unit orbit formula") + for d, count in row["exact_repetitions"].items(): + require(int(d) in (1, 3) or count == 0, "forbidden unit repetition") + return repeated diff --git a/research/chain-cyclic-schedules/verify.py b/research/chain-cyclic-schedules/verify.py new file mode 100644 index 0000000000..38634b8f0c --- /dev/null +++ b/research/chain-cyclic-schedules/verify.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 +"""Read-only exact replay. No network, Git, numpy or assertions required.""" +import hashlib +import json +from math import comb, gcd +from pathlib import Path +import sys + +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +from periods import (check_unit_row, divisors, fixed_count, period_row, + repeated_counts, require, unit_repeated_count) +from oracle import (chronological_counts, literal_census, matrix_counts, + residue_dp, words) + + +def check_sources(): + sources = json.loads((HERE / "SOURCES.json").read_text(encoding="utf-8")) + checked = 0 + for row in sources["files"]: + if "vendored_as" in row: + payload = (HERE / row["vendored_as"]).read_bytes() + require(hashlib.sha256(payload).hexdigest() == row["sha256"], "source SHA256 mismatch") + checked += 1 + return checked + + +def source_rows(): + data = json.loads((HERE / "source/6037-RESULT.json").read_text(encoding="utf-8")) + rows = {int(k): [int(x) for x in v] for k, v in data["balanced_counts"].items()} + require(set(rows) == set(range(2, 25)), "source census domain") + for m, row in rows.items(): + require(len(row) == m and all(x >= 0 for x in row), "source census shape") + rows[1] = [6] + return rows + + +def all_period_rows(rows): + answer, unit_cases = {}, 0 + for m in range(1, 25): + answer[str(m)] = [] + for c in range(m): + row = period_row(m, c, rows) + row["target"] = c + if m >= 2 and gcd(c, m) == 1: + row["unit_repeated_words"] = check_unit_row(m, c, rows, row) + unit_cases += 1 + answer[str(m)].append(row) + return answer, unit_cases + + +def check_literal(rows, table): + stats = dict(words=0, rotations=0, scalar_matrix_comparisons=0, cases=0) + for m in range(1, 6): + found = literal_census(m) + require(found["counts"] == rows[m], "literal W does not match source") + for c in range(m): + row = table[str(m)][c] + require(found["orbits"][c] == row["cyclic_orbits"], "literal cyclic orbit mismatch") + for d in divisors(m): + require(found["fixed"][d][c] == row["fixed"][str(d)], "literal fixed-point mismatch") + require(found["exact"][c][d] == row["exact_repetitions"][str(d)], + "literal least-period mismatch") + stats["cases"] += 1 + stats["words"] += found["total"] + stats["rotations"] += found["rotations"] + stats["scalar_matrix_comparisons"] += found["matrix_checks"] + return stats + + +def check_repetition(): + tests = restored = 0 + for n in range(1, 5): + for word, (a, b, t) in words(n): + for d in range(1, 9): + m = n * d + predicted = repeated_counts(n, d, a, b, t) + actual = chronological_counts(word * d) + require(predicted == actual, "integer repetition identity") + if n <= 2: + require(matrix_counts(word * d) == actual, "repetition matrix identity") + pair_ok = actual[0] % m == actual[1] % m == 0 + gate = (d % 2 == 1 or n % 2 == 0) and a % n == b % n == 0 + require(pair_ok == gate, "repetition pair gate") + if pair_ok: + target = (d * t + comb(d, 3) * n**3) % m + require(actual[2] % m == target, "repetition target shift") + restored += 1 + tests += 1 + return dict(cases=tests, restored_pair_cases=restored, max_modulus=32) + + +def check_controls(rows, table): + controls = { + "naive_total_over_length": rows[3][1] % 9 != 0, + "missing_even_odd_pair_gate": fixed_count(2, 0, 2, rows) == 0 and rows[1][0] == 6, + "missing_cubic_shift": fixed_count(3, 1, 3, rows) == 6 and 1 % 3 != 0, + "wrong_cubic_shift_sign": fixed_count(3, 1, 3, rows) != fixed_count(3, 2, 3, rows), + "missing_target_divisibility": fixed_count(3, 0, 3, rows) == 0 and rows[1][0] > 0, + "all_unit_words_primitive": unit_repeated_count(3, 1, rows) == 6, + "allow_unit_repetition_at_nine": unit_repeated_count(9, 1, rows) == 0, + "missing_totient_weight": table["5"][0]["cyclic_orbits"] * 15 != rows[5][0] + 6, + "mobius_sign_reversed": table["4"][0]["primitive_words"] != rows[4][0] + 42, + "nonunit_repetition_three_only": table["4"][0]["exact_repetitions"]["2"] == 42, + "larger_unit_exception": unit_repeated_count(15, 8, rows) == 5340, + } + for name, passed in controls.items(): + require(passed, "negative control: " + name) + return list(controls) + + +def build(): + source_checks = check_sources() + rows = source_rows() + table, unit_cases = all_period_rows(rows) + literal = check_literal(rows, table) + for m in range(1, 9): + require(residue_dp(m) == rows[m], "independent DP/source mismatch") + repetition = check_repetition() + controls = check_controls(rows, table) + return dict(schema_version=1, status="PASS_CHAIN_CYCLIC_SCHEDULES", + source_files_checked=source_checks, literal=literal, + dp_moduli=list(range(1, 9)), repetition=repetition, + unit_cases=unit_cases, controls=controls, + derived_from_source_counts_through=24, period_counts=table) + + +def main(): + result = build() + expected = json.loads((HERE / "EXPECTED.json").read_text(encoding="utf-8")) + require(result == expected, "EXPECTED result mismatch") + receipt = {"result": result, "files": {}} + for path in sorted(HERE.rglob("*")): + if path.is_file() and "__pycache__" not in path.parts: + receipt["files"][path.relative_to(HERE).as_posix()] = hashlib.sha256(path.read_bytes()).hexdigest() + print(json.dumps(receipt, sort_keys=True)) + + +if __name__ == "__main__": + main() From d6975611eaff71e9bd4fdd27cbd5a88b063ee9e9 Mon Sep 17 00:00:00 2001 From: SHIN09-git Date: Wed, 28 Oct 2026 13:03:47 +0800 Subject: [PATCH 3/5] Complete the unit-target repetition existence classification --- research/chain-cyclic-schedules/EXPECTED.json | 4 +- research/chain-cyclic-schedules/OVERLAP.json | 71 ++++++++++++++++++- research/chain-cyclic-schedules/PROOF.md | 21 ++++++ research/chain-cyclic-schedules/README.md | 10 +-- research/chain-cyclic-schedules/TASK.json | 4 +- research/chain-cyclic-schedules/VALIDATION.md | 22 +++++- research/chain-cyclic-schedules/VERIFY.json | 2 +- .../chain-cyclic-schedules/audit_mutations.py | 2 + research/chain-cyclic-schedules/periods.py | 4 ++ research/chain-cyclic-schedules/verify.py | 3 + 10 files changed, 132 insertions(+), 11 deletions(-) diff --git a/research/chain-cyclic-schedules/EXPECTED.json b/research/chain-cyclic-schedules/EXPECTED.json index d40ee365c8..5767d429d2 100644 --- a/research/chain-cyclic-schedules/EXPECTED.json +++ b/research/chain-cyclic-schedules/EXPECTED.json @@ -10,7 +10,9 @@ "missing_totient_weight", "mobius_sign_reversed", "nonunit_repetition_three_only", - "larger_unit_exception" + "larger_unit_exception", + "small_existence_exception_six", + "small_existence_exception_twelve" ], "derived_from_source_counts_through": 24, "dp_moduli": [ diff --git a/research/chain-cyclic-schedules/OVERLAP.json b/research/chain-cyclic-schedules/OVERLAP.json index 98c9616096..df1e2726b6 100644 --- a/research/chain-cyclic-schedules/OVERLAP.json +++ b/research/chain-cyclic-schedules/OVERLAP.json @@ -73,6 +73,47 @@ "warnings": [], "limits": "Remote PR scope includes open and closed/merged titles and bodies, with separate coverage and timestamps. State changes are deduplicated by latest PR update; snapshots are not atomic. Local coverage compares searched working-tree notes with regular note paths at coverage.local.head; it does not certify HEAD contents or historical coverage. No code diffs or arbitrary package files are searched. Recheck relevant heads before submission.", "matches_total": 15 + }, + { + "status": "POSSIBLE_OVERLAP_NOT_A_NOVELTY_CERTIFICATE", + "searched_at": "2026-10-28T05:00:21.657866+00:00", + "terms": [ + "chain-balanced-multiplicities", + "chain-cyclic", + "necklace", + "primitive balanced", + "rotation period", + "Burnside" + ], + "coverage": { + "local": { + "head": "721c03822c421b7f7fcbb2598993b947c4d88419", + "records": 8350, + "head_records": 8348, + "complete_head_inventory": true, + "unsearched_head_paths": [] + }, + "open_prs": { + "fetched_at": "2026-10-28T04:51:26.247368+00:00", + "complete_pagination": true, + "records": 341 + }, + "discussions": { + "fetched_at": "2026-10-28T04:58:49.972861+00:00", + "complete_pagination": true, + "records": 5722 + }, + "closed_prs": { + "fetched_at": "2026-10-28T04:37:31.102839+00:00", + "complete_pagination": true, + "records": 5222 + } + }, + "warnings": [ + "closed_prs: refresh failed; using old data if available: Command '['gh', 'api', '--paginate', 'repos/CrocSwap/integer-mult-bounds/pulls?state=closed&per_page=100&sort=updated&direction=desc', '--jq', '@json']' timed out after 90 seconds" + ], + "limits": "Remote PR scope includes open and closed/merged titles and bodies, with separate coverage and timestamps. State changes are deduplicated by latest PR update; snapshots are not atomic. Local coverage compares searched working-tree notes with regular note paths at coverage.local.head; it does not certify HEAD contents or historical coverage. No code diffs or arbitrary package files are searched. Recheck relevant heads before submission.", + "matches_total": 25 } ], "inspected_nearest_prs": [ @@ -82,5 +123,33 @@ 4748 ], "added_value": "All-modulus depth-three rotation-period and unit-target repetition classification; no claim of new rotation closure, W census extension, or speedup.", - "limits": "Read-only coordination inspection; no reservation or Discussion claim posted. Metadata search does not certify novelty or inspect arbitrary historical diffs." + "limits": "Read-only coordination inspection; no reservation or Discussion claim posted. Metadata search does not certify novelty or inspect arbitrary historical diffs.", + "follow_up": { + "at": "2026-10-28T05:02:00Z", + "closed": { + "sort": "updated_desc", + "page_size": 20, + "newest_updated_at": "2026-10-28T01:17:02Z", + "baseline_cutoff": "2026-10-28T04:37:31.102839+00:00", + "newer_records": 0, + "interpretation": "All 20 latest closed PRs predate the baseline cutoff; no closed-PR updates in the intervening interval were returned." + }, + "recent_open": { + "kind": "15 most recently created open PRs", + "highest_pr": 6072, + "scope_notes": { + "6071": "Depth-two multisource Gray blocks, not the balanced depth-three rotation classification.", + "6072": "Denominator-13 fair-bit sampling, unrelated to chain scheduling." + } + }, + "source_head": { + "pr": 6037, + "sha": "88331a098ad9f0299e205bb103acc55b2dc087df", + "state": "open" + }, + "inspected_post_scan_prs": [ + 6071, + 6072 + ] + } } diff --git a/research/chain-cyclic-schedules/PROOF.md b/research/chain-cyclic-schedules/PROOF.md index 7074f032dd..d826b2e8f6 100644 --- a/research/chain-cyclic-schedules/PROOF.md +++ b/research/chain-cyclic-schedules/PROOF.md @@ -173,6 +173,27 @@ period 3n=m. All remaining words have least period 3m. Counting these two orbit sizes proves (7). The condition is necessary for repetition; it does not guarantee W(n,t0)>0. QED. +**Existence classification.** The preceding necessary conditions are also +sufficient for a nonprimitive unit-target word, except at **(m,c)=(6,5) +and (12,1)**. Thus such a word exists if and only if + +```text +m = 3n, 3 does not divide n, c = n^3 (mod 3), +and (m,c) is neither (6,5) nor (12,1). (8) +``` + +Here the standing unit-target hypothesis still applies. To prove this, +use the credited balanced existence theorem in #4249/#4257: for n>=2, +W(n,t)>0 at nonzero t except (n,t)=(2,1),(3,2),(4,3). +The corollary gives gcd(t0,n)=1 and 3 not dividing n, so the n=3 exception +cannot arise. The n=2 exception becomes m=6,c=5: the congruences are +c=2 modulo 3 and c=1 modulo 2. The n=4,t0=3 exception becomes m=12,c=1: +c=1 modulo 3 and c=3t0=1 modulo 4. The n=1 convention gives six words +and no exception. In every other allowed case the predecessor theorem +supplies a valid block v; v^3 has the required endpoint and least period m. +This is a new application of that credited existence theorem, not a new +proof of its balanced-word construction. QED. + ## 4. Exact examples and boundaries For (m,c)=(3,1), W=24. Six words are triples of permutations of 123; diff --git a/research/chain-cyclic-schedules/README.md b/research/chain-cyclic-schedules/README.md index d301196c70..7b887b49d6 100644 --- a/research/chain-cyclic-schedules/README.md +++ b/research/chain-cyclic-schedules/README.md @@ -4,7 +4,9 @@ A correct balanced schedule can have a shorter rotation period than its length. This package proves an exact repetition law for every modulus and uses it to count cyclic classes from the literal counts W(m,c). In particular, **a unit-target schedule can repeat only three times**. The exception needs -m=3n, 3 not dividing n, and c=n^3 modulo 3. +m=3n, 3 not dividing n, and c=n^3 modulo 3. Combining this with the credited +balanced existence theorem makes those conditions sufficient too, except +at exactly (m,c)=(6,5) and (12,1). For example, at (m,c)=(3,1), the known 24 correct length-nine words form **four cyclic classes**: two of size nine and two of size three. Dividing @@ -76,8 +78,8 @@ handwritten success receipt. The registered checks cover: nonnegative integral period populations, and agreement between Burnside and the least-period orbit sum. **Rows above m=8 inherit #6037's counts**; they are derived tables, not an independent high-m census. -- Eleven explicit false-claim controls and nine actual private-copy mutations, - each rejected in normal and optimized Python: seven formula changes, one +- Thirteen explicit false-claim controls and eleven actual private-copy mutations, + each rejected in normal and optimized Python: nine formula changes, one source-byte change and one expected-table change. Positive private-copy probes pass in both modes. @@ -145,7 +147,7 @@ There is no stochastic search, external solver or runtime network request. Python dynamically allocates bounded tuples, dictionaries and integers; this is the declared managed-runtime deviation from allocation-free coding. The mathematical proof is uniform; the program is a bounded checker and does -not claim to execute every modulus. The mutation runner uses at most 20 +not claim to execute every modulus. The mutation runner uses at most 24 sequential bounded child probes, never concurrent scientific replays. ## Credit diff --git a/research/chain-cyclic-schedules/TASK.json b/research/chain-cyclic-schedules/TASK.json index f69c0df854..6edf378989 100644 --- a/research/chain-cyclic-schedules/TASK.json +++ b/research/chain-cyclic-schedules/TASK.json @@ -42,13 +42,13 @@ ] }, "scope_status": "changed", - "actual_scope": "Classify all rotation periods of balanced correct depth-three chain words; derive fixed-point, cyclic-class and primitive-word counts from W(m,c), with a sharp unit-target repetition corollary.", + "actual_scope": "Classify all rotation periods of balanced correct depth-three chain words; derive cyclic and primitive counts from W(m,c), and classify exactly when nonprimitive unit-target words exist.", "scope_change_reason": "The alphabet and source count stay fixed. This follows the unresolved combinatorics behind PR6037, not the card's extra-operation construction. It is an algebraic counting side result with explicit credit for earlier rotation closure.", "bottleneck_link": "An exact quotient prevents invalid rotational deduplication and gives all-modulus divisibility controls for future connector censuses. It changes neither the complete-call tariff nor the selected supplier budget; no kappa improvement or measured speedup.", "budget_minutes": 60, "stop_rule": "Finish the all-modulus depth-three proof, exhaustive m<=5 orbit checks, DP m<=8, repeat blocks n<=4,d<=8, bounded mutation controls and package publication. Do not extend the predecessor high-modulus census or physical supplier construction.", "outcome": "completed", - "evidence": "PROOF.md; generated EXPECTED.json; exact literal/matrix/DP checks; 11 false-claim controls and nine actual source/expected/code mutations checked in both interpreter modes.", + "evidence": "PROOF.md; generated EXPECTED.json; exact literal/matrix/DP checks; 13 false-claim controls and eleven actual source/expected/code mutations checked in both interpreter modes.", "author": "SHIN09-git with substantial OpenAI Codex assistance", "ai_assistance": "Substantial OpenAI Codex assistance in source reading, mathematical derivation, code, validation and writing. Single assisted author; no independent human or proof-kernel review.", "open_questions": [ diff --git a/research/chain-cyclic-schedules/VALIDATION.md b/research/chain-cyclic-schedules/VALIDATION.md index 5dc9a46402..77cddce91c 100644 --- a/research/chain-cyclic-schedules/VALIDATION.md +++ b/research/chain-cyclic-schedules/VALIDATION.md @@ -14,11 +14,11 @@ python -X utf8 -B scripts/research_package.py --package research/chain-cyclic-sc It ran full isolated normal and optimized replay, then the private-copy mutation audit. Both full replays returned the same mathematical object -in EXPECTED.json. Nine actual mutations were rejected in each mode, with +in EXPECTED.json. Eleven actual mutations were rejected in each mode, with two passing unchanged probes. The parity-gate mutation is detected by the separate literal orbit counter, not only by the retained expected table. -The initial generated replay took 13.125 seconds. This is one local timing, +The initial generated replay took 13.125 seconds; the existence-classification replay took 13.672 seconds. This is one local timing, not a benchmark against #6037 or a speedup claim. Evidence domains and exact counts are in README.md and EXPECTED.json. @@ -61,3 +61,21 @@ counting is exhaustive only through m=5; independent DP stops at m=8. Numerical tables through m=24 above that range inherit the frozen #6037 counts. No physical hosting, precision, routing, compiler or outer-bound claim is tested or changed here. + +## Source transport + +The pending #6037 bytes are retained unchanged in publication ancestor +ccff0fb7ed8f53a686a3f2ecc2a5585d7bd8a505. All executable source pins now +resolve to the canonical base or this publication ancestor; original upstream +head/path/blob fields are retained separately. The optional full-history +preflight refuses this shallow checkout, so no full-history preflight pass +is claimed. Committed-byte and independent export checks are used separately. + +The final registered replay after the existence classification took 52.812 +seconds total. Normal and optimized result/file-hash receipts were identical; +22 mutated probes failed and two unchanged probes passed. The package file +inventory and all hashes were unchanged before and after the run. + +Direct Git ancestry queries return success for both the canonical base and +retained-source ancestor. This narrower check is not presented as a pass of +the full-history preflight. diff --git a/research/chain-cyclic-schedules/VERIFY.json b/research/chain-cyclic-schedules/VERIFY.json index f99faf1592..3234e6c1ef 100644 --- a/research/chain-cyclic-schedules/VERIFY.json +++ b/research/chain-cyclic-schedules/VERIFY.json @@ -40,7 +40,7 @@ "{package}/audit_mutations.py" ], "timeout_seconds": 180, - "checks": "Nine actual private-copy code/data mutations rejected in normal and optimized modes; positive copied probes pass." + "checks": "Eleven actual private-copy code/data mutations rejected in normal and optimized modes; positive copied probes pass." } ] } diff --git a/research/chain-cyclic-schedules/audit_mutations.py b/research/chain-cyclic-schedules/audit_mutations.py index 83f5ab49de..cb9558fbac 100644 --- a/research/chain-cyclic-schedules/audit_mutations.py +++ b/research/chain-cyclic-schedules/audit_mutations.py @@ -43,6 +43,8 @@ ("totient_weight", "periods.py", "phi(d) * fixed[d]", "fixed[d]"), ("mobius_sign", "periods.py", "result = -result", "result = result"), ("unit_all_primitive", "periods.py", "return rows[n][((c - n**3) // 3) % n]", "return 0"), + ("existence_six", "periods.py", "((6, 5), (12, 1))", "((0, 0), (12, 1))"), + ("existence_twelve", "periods.py", "((6, 5), (12, 1))", "((6, 5), (0, 0))"), ("source_tamper", "source/6037-RESULT.json", '"6741578652"', '"6741578653"'), ("expected_tamper", "EXPECTED.json", '"cyclic_orbits": 7,', '"cyclic_orbits": 8,'), ] diff --git a/research/chain-cyclic-schedules/periods.py b/research/chain-cyclic-schedules/periods.py index fd11d4bdf7..7c10879460 100644 --- a/research/chain-cyclic-schedules/periods.py +++ b/research/chain-cyclic-schedules/periods.py @@ -81,6 +81,10 @@ def unit_repeated_count(m, c, rows): def check_unit_row(m, c, rows, row): repeated = unit_repeated_count(m, c, rows) + allowed = (m % 3 == 0 and m % 9 != 0 and + (c - (m // 3)**3) % 3 == 0) + exists = allowed and (m, c) not in ((6, 5), (12, 1)) + require((repeated > 0) == exists, "unit repetition existence classification") require(row["primitive_words"] == rows[m][c] - repeated, "unit primitive formula") require(row["cyclic_orbits"] * (3 * m) == rows[m][c] + 2 * repeated, "unit orbit formula") diff --git a/research/chain-cyclic-schedules/verify.py b/research/chain-cyclic-schedules/verify.py index 38634b8f0c..ca05157ba5 100644 --- a/research/chain-cyclic-schedules/verify.py +++ b/research/chain-cyclic-schedules/verify.py @@ -103,6 +103,9 @@ def check_controls(rows, table): "mobius_sign_reversed": table["4"][0]["primitive_words"] != rows[4][0] + 42, "nonunit_repetition_three_only": table["4"][0]["exact_repetitions"]["2"] == 42, "larger_unit_exception": unit_repeated_count(15, 8, rows) == 5340, + "small_existence_exception_six": unit_repeated_count(6, 5, rows) == 0, + "small_existence_exception_twelve": unit_repeated_count(12, 1, rows) == 0 + and unit_repeated_count(12, 7, rows) == 216, } for name, passed in controls.items(): require(passed, "negative control: " + name) From a2d0504b3937c9513dc13787cfee56a4f983ef1f Mon Sep 17 00:00:00 2001 From: SHIN09-git Date: Wed, 28 Oct 2026 13:05:49 +0800 Subject: [PATCH 4/5] Keep mutation probes writable when replaying a read-only export --- research/chain-cyclic-schedules/VALIDATION.md | 7 +++++++ .../chain-cyclic-schedules/audit_mutations.py | 18 ++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/research/chain-cyclic-schedules/VALIDATION.md b/research/chain-cyclic-schedules/VALIDATION.md index 77cddce91c..82f95cbc2b 100644 --- a/research/chain-cyclic-schedules/VALIDATION.md +++ b/research/chain-cyclic-schedules/VALIDATION.md @@ -79,3 +79,10 @@ inventory and all hashes were unchanged before and after the run. Direct Git ancestry queries return success for both the canonical base and retained-source ancestor. This narrower check is not presented as a pass of the full-history preflight. + +The first read-only export passed both mathematical replays, then exposed a +Windows permission issue in the mutation harness: copying read-only file +attributes prevented edits to its private copies. The harness now copies +file contents without those attributes and makes only temporary directories +writable. The original exported sources remain read-only. The same eleven +mutations still have to fail semantically, rather than on a permission error. diff --git a/research/chain-cyclic-schedules/audit_mutations.py b/research/chain-cyclic-schedules/audit_mutations.py index cb9558fbac..974d2a8518 100644 --- a/research/chain-cyclic-schedules/audit_mutations.py +++ b/research/chain-cyclic-schedules/audit_mutations.py @@ -6,6 +6,7 @@ import json from pathlib import Path import shutil +import stat import subprocess import sys import tempfile @@ -50,6 +51,15 @@ ] +def private_copy(source, destination): + # A read-only export must stay read-only; only its temporary copies change. + shutil.copytree(source, destination, copy_function=shutil.copyfile, + ignore=shutil.ignore_patterns("__pycache__")) + directories = [destination] + [p for p in destination.rglob("*") if p.is_dir()] + for directory in directories: + directory.chmod(directory.stat().st_mode | stat.S_IRWXU) + + def run_probe(folder, optimized): argv = [sys.executable, "-I", "-W", "error", "-B"] if optimized: @@ -65,20 +75,20 @@ def main(): evidence = [] with tempfile.TemporaryDirectory(prefix="chain-cyclic-controls-") as tmp: baseline = Path(tmp) / "baseline" - shutil.copytree(HERE, baseline, ignore=shutil.ignore_patterns("__pycache__")) - (baseline / "probe.py").write_text(PROBE, encoding="utf-8") + private_copy(HERE, baseline) + (baseline / "probe.py").write_text(PROBE, encoding="utf-8", newline="\n") for optimized in (False, True): control = run_probe(baseline, optimized) if control.returncode or control.stdout.strip() != "PASS_MUTATION_PROBE": raise ValueError("positive mutation probe failed: " + control.stderr) for name, relative, old, new in MUTATIONS: changed = Path(tmp) / name - shutil.copytree(baseline, changed) + private_copy(baseline, changed) path = changed / relative original = path.read_text(encoding="utf-8") if original.count(old) != 1: raise ValueError("mutation anchor must be unique: " + name) - path.write_text(original.replace(old, new), encoding="utf-8") + path.write_text(original.replace(old, new), encoding="utf-8", newline="\n") for optimized in (False, True): result = run_probe(changed, optimized) if result.returncode == 0 or "ValueError:" not in result.stderr: From abdcee87d8eb0f46db522b16596406f43e890d7e Mon Sep 17 00:00:00 2001 From: SHIN09-git Date: Wed, 28 Oct 2026 13:08:52 +0800 Subject: [PATCH 5/5] Record committed Git-free read-only replay evidence --- research/chain-cyclic-schedules/VALIDATION.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/research/chain-cyclic-schedules/VALIDATION.md b/research/chain-cyclic-schedules/VALIDATION.md index 82f95cbc2b..b04cbb3eb3 100644 --- a/research/chain-cyclic-schedules/VALIDATION.md +++ b/research/chain-cyclic-schedules/VALIDATION.md @@ -86,3 +86,22 @@ attributes prevented edits to its private copies. The harness now copies file contents without those attributes and makes only temporary directories writable. The original exported sources remain read-only. The same eleven mutations still have to fail semantically, rather than on a permission error. + +## Successful independent export replay + +Publication snapshot `a2d0504b3937c9513dc13787cfee56a4f983ef1f` passed the +committed-byte preflight for all 19 package files and the official export +integrity/input-coverage check. Export SHA-256: +`6c58fbc92d36ff143e560060495f2dea20127dded845473eebc230ac34207826`. + +That exact archive was extracted outside the repository. Every exported file +was marked read-only, and PATH contained only the Python installation, with +no Git executable. Normal replay passed in 14.360 s, optimized replay in +12.859 s, and all eleven mutation variants in both modes in 21.109 s. All +20 exported files (19 package files plus the export manifest) and their +hashes were unchanged after the three commands. The read-only-copy repair +is therefore verified on the Windows environment reported above. + +Only this validation note was added after that successful snapshot; the +proof, programs, source pins, expected table and registered commands are +identical. The final publication commit receives its own byte preflight.