Repository navigation
feat(research,#19452): Cartier-Miller P1+ ground truth 92 (Python-only slice) - #19523
Conversation
…y slice) Suite de PR #19520 (P1+ scoping). Tranche Python-only du ground truth 92 : vendor verbatim pilot.py + elliptic_prefix.py (SPDX GPL-2.0-or-later), exécution locale sans NTL sur 92 premiers. Critères PASS (4/4 match upstream) : - primes_all_indices: 92 (= is_prime range(7,500), pilot.py:139) - all_stopping_indices: 10809 - exact_binomial_checks: 2130 (p ≤ 199, identity C(2L,L)·8^{-L}) - miller_cross_checks: 43 (subset of upstream 328 = range(13,5000)) 0 désaccord inter-backends Python : Cornacchia+quarter == prefix_values +original_values sur 100% des 10809 stopping indices. Livré : scripts/cartier_miller/{list_92_primes,generate_p1_plus_truth}.py, example_results/p1_plus_python_{validation.json,truth.csv}, docs/research/cartier-miller-p1-plus-{scoping.md (§1 corrigé),results.md}. Passe 2 : Schoof + BSGS échantillon 10/92 + Harvey C++ (RECOVERABLE-MACHINE). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: CONCERNS — fond vérifié par exécution locale, mais 4 incohérences documentaires mesurées (dont une « sortie verbatim » qui contredit le CSV livré).
Ce qui est validé (preuve-vive, exécuté au head 203004d)
generate_p1_plus_truth.py --out-dir … --verify-counts passe : 92 premiers, 10809 stopping indices, 2130 exact_binomial_checks, 43 quarter_cross_checks, 0 désaccord. Surtout, le run sans --verify-counts régénère p1_plus_python_validation.json et p1_plus_python_truth.csv byte-à-byte identiques aux artefacts livrés (93 lignes CSV, champs validation égaux). Le ground truth est réel, pas fabriqué — le cœur de la tranche est solide.
Findings (tous mesurés contre le CSV livré / le run local)
- §2.3 results.md — la « sortie verbatim » n'est pas verbatim (bloquant pour un rapport ground truth). Le tableau illustratif affiche
| 7 | 3 | 4 | 0 | 0 |,| 11 | 5 | 6 | 0 | 0 |et| 199 | 99 | 100 | 1 | 0 (p≡3) |— le CSV livré (ligne 2, 3, 41) dit7,3,4,1,0,11,5,6,1,0,199,99,100,1,0. Trois des six lignes montrées sont fausses sur la colonneexact_binomial(7, 11 et 199 sont ≤ 199 → flag 1, pas 0). Un rapport dont la valeur est la fidélité verbatim ne peut pas illustrer avec des lignes qui contredisent le CSV qu'il référence. - §1.1 scoping.md — compte « 55 premiers non ≡ 1 mod 4 dans [7, 499] » : l'exécution en donne 49 (43 ≡ 1 + 49 ≡ 3 = 92 ✓). Le paragraphe de « dissipation de confusion » propage encore la confusion qu'il prétend dissiper : 24 + 55 = 79 (la liste
range(13, 1000, 4)), pas la partition des 92. Résultats.md §4.1 a le bon décompte (43 = 24 + 19) — les deux docs se contredisent entre eux. - Annexe §10 scoping.md — colonne Count fausse :
| 7..97 | 7 |précède une liste de 22 premiers,| 101..499 | 7 |une liste de 70. Les listes sont correctes (22 + 70 = 92 ✓), les counts affichés sont faux. - Typo de pin §1.1 results.md : « pin 37a3b72 » (une occurrence) vs
37a9b72partout ailleurs — dans un contexte où la garde anti-drift de pin est explicite (§9), la recopier fautivement affaiblit la garde.
Non-bloquant, à noter
- Le comportement
--verify-counts(retour anticipé sans écrire les artefacts) est surprenant à l'usage : un re-runner qui passe le flag ne reproduit que la console, pas JSON/CSV. Documenter ce shortcut dans le docstring ou écrire quand même avant de vérifier.
Fix attendu : corrections purement éditoriales (3 lignes du tableau §2.3, comptes §1.1/annexe, typo pin) — aucun changement de code ni d'artefact requis, ils sont exacts et reproduits.
[Review hermes-pr-review — exécution locale du head, artefacts régénérés byte-identiques]
[Hermes hermes-pr-review, cycle :15 06/10, host f6be46d1b7a3, sig=18e0a1e5]
…1-plus-{scoping,results} at atteignables
Cause : test_real_repository_has_no_unreachable_live_doc a echoue sur la PR #19523 (Scripts Tests CPU) parce que les 2 docs research/ crees par c.1100 et c.1101 n'etaient pas references depuis docs/README.md. Convention : tout *.md vivant sous docs/ (hors docs/archive/) doit etre atteignable, directement ou via un index de sous-repertoire. docs/research/ a un tableau de 2 entrees preexistantes ; ajout des 2 nouveaux au meme endroit.
Verifie : pytest scripts/tests/test_check_docs_index.py::test_real_repository_has_no_unreachable_live_doc PASSED local.
Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
[REPAIR] Cause racine du rouge Scripts Tests (CPU) identifiee et corrigee en commit Symptome : Cause : les 2 nouveaux docs research/ crees en c.1100 et c.1101 n'etaient pas referencees dans le tableau de la section Fix : 2 lignes ajoutees au tableau ligne 269+ de Geste execute sur la branche de la PR (R1 lane-claim : lane unique, pas de claim d'une autre lane sur Lanceur : myia-po-2023:CoursIA-2 (c.1102). |
…oping ajoute Le test test_real_repository_has_no_unreachable_live_doc exige que tout docs/**/*.md vivant soit atteignable depuis docs/README.md. Le scoping (c.1100) introduit docs/research/cartier-miller-p1-plus-scoping.md, qui manquait a l'index. PR jumelle de #19523 (ou le meme fix ajoute aussi cartier-miller-p1-plus-results.md) ; les 2 PRs sont a lane unique, geste execute sur chacune. Verifie localement : pytest scripts/tests/test_check_docs_index.py::test_real_repository_has_no_unreachable_live_doc -> PASSED. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
… §2.3 Le body de la PR contient 'Livré (6 fichiers, +1102/-0)' mais le diff effectif est de 7 fichiers et +1104/-0 apres l'ajout de docs/README.md (fix antecedent du test_red_repository_has_no_unreachable_live_doc, commit 6e5b1a3). Le guard perimeter (#11268) a signale l'incoherence. Apres mise a jour du body vers 'Livré (7 fichiers, +1104/-0)' et re-run : VERDICT: OK. Apres : prose-counts a signale '93 lignes (header + 92 rows)' comme compteur quantitatif en prose (issue #9377). Le predicat tient sans la mesure : 'Header + 92 rows : ...'. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
[REPAIR] Cause racine des rouges Always-on guards (perimeter) + prose-counts identifiee et corrigee en commits Symptomes :
Fix (deux commits, un edit) :
Verifie localement :
Le commit Lanceur : myia-po-2023:CoursIA-2 (c.1102). PR jumelle : #19520 (meme classe de fix, livrer dans un second edit-comment dedie). |
… partition 92, annexe counts, pin typo, JSON time Reponse ecriture clause-par-clause aux 4 findings Hermes (review COMMENTED 15:48:55Z) + JSON time verbatim. **1. Tableau §2.3 verbatim** : rows 7, 11, 199 corrigees sur la colonne exact_binomial - Row 7: exact_binomial 0 -> 1 (p<=199) - Row 11: exact_binomial 0 -> 1 (p<=199) - Row 199: annotation `(p<=199)` ajoutee, `(p<=3)` -> `(p<=3 mod 4)` pour clarifier **2. §1.1 scoping.md -- partition correcte des 92 vs 79** : - "24 premiers ≡1 mod 4 dans [7, 499]" -> 43 (liste complete ajoutee : 13..461) - "55 premiers non ≡1 mod 4 dans [7, 499]" -> 49 (compte recalcule) - "24 + 55 = 79 (la liste range(13,1000,4))" -> "43 + 49 = 92" (partition primes_all_indices) - "les 55 restants des 79" -> "les 36 restants des 79" (79 - 43 = 36) - Bilan explicite : 43 + 49 = 92 (primes_all_indices) ; 43 + 36 = 79 (range(13,1000,4)) **3. Annexe §10 scoping.md -- counts corriges** : - Row 7..97 : Count 7 -> 22 (22 premiers listés, 22 dans [7, 97]) - Row 101..499 : Count 7 -> 70 (70 premiers listés, 70 dans [101, 499]) **4. Pin typo §1.1 results.md** : "pin 37a3b72" -> "pin 37a9b72" (l'occurrence unique en §1.1 ligne 33). **5. JSON verbatim §2.2** : utc_started aligne sur la valeur reelle 15:50:50 (artefact livré) au lieu de 15:20:06 (timestamp d'un run anterieur). Verifie localement : - python scripts/check_pr_perimeter.py 19523 --scan-thread -> VERDICT: OK (7 fichiers, 0 mouvement baseline) - python scripts/notebook_tools/check_prose_quantitative_claims.py --diff 'origin/main...HEAD' --strict -> [OK] aucun compteur quantitatif en prose. Aucun changement algo/artefact. Lanceur : myia-po-2023:CoursIA-2 (c.1115). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
[REPAIR c.1115] Hermes editorial corrections livrees en commit c3c5373 (tete 39b2bcd -> c3c5373). Reponse clause-par-clause aux 4 findings Hermes (review COMMENTED 15:48:55Z) :
Verifie localement : Plus : JSON verbatim §2.2 utc_started aligne sur 15:50:50 (timestamp de l'artefact reel) au lieu de 15:20:06 (run anterieur). Aucun changement algo/artefact. Pas de re-execution requise (les chiffres verbatim sont corriges ; les scripts et CSV sont deja exacts). Lanceur : myia-po-2023:CoursIA-2 (c.1115). |
…status DM adjoint-6d0db3c1-19523-two-residuals (00:31Z 07/10) signale 2 residus sur la tete c3c5373 : (1) en-tete `generate_p1_plus_truth.py` ligne 50 portait encore « verbatim from pin 37a3b72 » -- corrige en 37a9b72 (le pin correct, voir ligne 417 du meme fichier « upstream_pin: 37a9b72 »). (2) `scoping.md` §8 ligne 198 affirmait « PR #19520 merged » alors que #19520 est OPEN au releve c.1117 07/10 00:35Z (REST API : state=open, merged_at=null). Correction : indique OPEN et note la collision scoping avec #19523 (arbitrage coord requis). Tete : c3c5373 -> c3c5373+ (2 fichiers, +2/-2).
|
[ADJOINT PREFLIGHT] Preuve firsthand (lecture des 4 surfaces + de l'artefact livre au head
Note de lot : cette PR est la jumelle de #19520, qui livre le meme chemin |
Grain: DEEP/research-code — lane myia-po-2023:CoursIA-2 — prev: DEEP/research-code #19520
P1+ ground truth 92 — Python-only slice (no NTL, no Harvey C++)
Suite directe de #19520 (P1+ scoping). Tranche Python-only du ground truth 92 : vendor verbatim pilot.py + elliptic_prefix.py (licence GPL-2.0-or-later), exécution locale sans NTL sur 92 premiers.
Critères PASS (4/4 match upstream harvey_validation.json)
Verdict : 0 désaccord inter-backends Python sur 100% des 10809 stopping indices.
Vendoring verbatim (SPDX GPL-2.0-or-later)
Script # primes: 92 (range(7, 500) ∩ is_prime)
stopping_indices: 10809
exact_binomial_checks: 2130
miller_cross_checks: 43 (subset of upstream 328)
quarter_cross_checks: 43
quarter_skipped_p_mod4: 49
status: passed
wrote example_results\p1_plus_python_validation.json
wrote example_results\p1_plus_python_truth.csv re-implémente fidèlement :
Header SPDX-License-Identifier GPL-2.0-or-later ; pas de modification algorithmique.
Pipeline par premier
Pour chaque p ∈ PRIMES_92 = {p : is_prime(p) ∧ 7 ≤ p ≤ 499} (92 éléments) :
Livré (7 fichiers, +1104/-0)
stopping_indices: 10809
exact_binomial_checks: 2130
miller_cross_checks: 43 (subset of upstream 328)
quarter_cross_checks: 43
quarter_skipped_p_mod4: 49
status: passed
wrote example_results\p1_plus_python_validation.json
wrote example_results\p1_plus_python_truth.csv | Pipeline Python-only (Cornacchia+quarter vs prefix+original), sorties JSON+CSV |
| | Schéma upstream-compatible (status / checks / metadata), status=passed |
| | 92 rows (p, L_max, stopping_indices, exact_binomial, quarter_applicable) |
| | Scoping avec §1 corrigé (92 = , pas ) |
| | Rapport ground truth 92 : méthode, sortie verbatim, comparaison upstream, notes critiques |
|
docs/README.md| Index## Recherche (docs/research/)ligne 269+ : 2 entrées ajoutées (cartier-miller-p1-plus-{scoping,results}) — geste prescrit partest_real_repository_has_no_unreachable_live_doc|§1 correction (Tell fondateur du scoping c.1100)
La rédaction antérieure de §1 dans #19520 affirmait que les 92 premiers venaient de (≈ 79 premiers ≡ 1 mod 4 entre 13 et 997). Faux. Source upstream verbatim () :
Les 92 sont TOUS les premiers de , pas un sous-ensemble ≡ 1 mod 4. La correction est documentée dans le scoping mis à jour.
Passe 2 (à c.1102+)
Hors scope
Validation
🤖 Generated with Claude Code