Repository navigation
feat(lean,#13483): tranche 12 -- admission des temoins dyadiques T=2 (clignotant, crapaud) - #18884
Conversation
…(clignotant, crapaud) Capstones blinker_hcap_of_period et toad_hcap_of_period par la chaine directe hcap_of_period (2 | 2^level des level >= 1, cadres de niveau 3), sans le relachement _mod. Periodes prouvees par le noyau (pas les lemmes Bool isOscillator du bestiaire) ; seul litteral neuf : toadP2, valide par simulation Python avant build. i18n FR/EN 19/19 byte-identical. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Justification écrite du rouge PR gate (imputé à la base, pas réparable par cette lane) : la seule jambe en échec est |
Path-collision (organ #13359/#13615)Cette PR #18884 (
|
|
[ADJOINT PREFLIGHT] note: Dossier c387 sur PR #18884 (feat(lean,#13483): tranche 12 -- admission des temoins dyadiques T=2 -- clignotant + crapaud). Lane porteuse myia-po-2024:CoursIA (tierce attestation). DEEP/lean -- hors perimetre merge_ready.py mais eligible merge a la main par ai-01 (regle skill). 2 fichiers MyIA.AI.Notebooks/SymbolicAI/Lean/conway_lean/Conway/Life/HashlifeMarginFragment{.lean,_en.lean} +336/-0 -- sibling pair FR/EN conforme a la regle #4980. PR gate SUCCESS (PASS -- no failing checks, tete 3df650d). B.0 clear (0 nit non leve ; 1 commentaire non evalue post-fix, non bloquant). Scope pass (2 fichiers .lean sous conway_lean/, pas sous .claude/ ni .github/). domain: pass (substance preuves Lean core : 2 capstones sans sorry, sans axiome ajoute, par hcap_of_period). Cible prioritaire c387 : body tres riche avec preuve concrete (blinker_hcap_of_period, toad_hcap_of_period), DEEP/lean propre -- ai-01 peut merger a la main sur la base de ce dossier. |
Grain: DEEP/lean — lane myia-po-2024:CoursIA — prev: MED/tooling #18872
Résumé
Tranche 12 du programme de levée du dernier
sorrydistinct deconway_lean(hashlife_correct_margin,Conway/Life/HashlifeMarginFragment.lean) : admission des deux témoins dyadiquesT = 2de la classe périodique que la docstring dehashlife_correct_margin_of_periodannonçait nommément — le clignotant (« clignotantT = 2») et le crapaud (« crapaudT = 2»). Le pulsar (tranche 8b) couvrait la partie non dyadique (T = 3) ; ces deux-là fermaient la liste annoncée.Deux capstones, sans
sorry, sansnative_decide, sans axiome ajouté, tous deux par la chaîne dyadique directehcap_of_period:blinker_hcap_of_period : ∀ t, jumpCapturedF (gridToMacroCellWithOffset (evolve t blinker_h)).2 = true;toad_hcap_of_period : ∀ t, jumpCapturedF (gridToMacroCellWithOffset (evolve t toad)).2 = true.Support par témoin : canonicalité (
blinker_h_canonical,blinker_v_canonical,toad_canonical,toadP2_canonical), périodes par le noyau (blinker_period_two_kernel,toad_period_two_kernel: composition des équations de step), faits de cadre (blinker_frame_off/lvl(-2,-2)niv 3 ;blinkerV_frame_off/lvl(-1,-3)niv 3 ;toad_frame_off/lvl(-2,-2)niv 3 ;toadP2_frame_off/lvl(-2,-3)niv 3) ethdiv(divisibilité de la période sur les deux phases, clos par le noyau).Admissibilité : pourquoi la chaîne dyadique directe suffit
hcap_of_periodexigeT ∣ 2^leveloùlevelest le niveau du cadre de reconstruction. PourT = 2, cette prémisse est acquise dès quelevel ≥ 1: toute puissance de deux ≥ 2 est divisible par 2. Les quatre cadres mesurés sont de niveau 3 — le relâchement par containmenthcap_of_period_mod(requis pour le pulsar,T = 3ne divisant aucune puissance de 2) n'est pas utilisé ici.Preuve
blinker_period_twoettoad_period_tworendentisOscillator g 2 = true, une formeBoolqui ne fournit pas l'égalitéevolve 2 g = gexigée parhcap_of_period. Les équations de step sont re-prouvées pardecide(blinker_h_step,blinker_v_step,toad_step,toadP2_step) puis composées.Conway.Life(blinker_hL206,blinker_vL209,toadL212) ; le seul littéral neuf est la seconde phase du crapaud (toadP2), validé avant le build par simulation Python indépendante (règle de B3 applicative : mesure de la discrimination avant le claim), puis clos pardecide.lake build Conway.Life.HashlifeMarginFragment Conway.Life.HashlifeMarginFragment_en: SUCCESS (log ci-dessous).check_i18n_siblings.pysurConway/Life: 19/19 byte-identical, 0 drift.count_code_sorry.py --json:distinct_code_sorry1 avant / 1 après — la tranche ajoute du contenu sorry-free ; le derniersorry(hashlife_correct_margin) reste, c'est l'objet du programme ([Lean fix] hashlife_correct_margin depends on sorryAx — lever la dette du lake conway_lean #13483).lean-axiomest câblé sur ce lake (lean-conway.ymlL129) mais sestarget-modules(Conway.KochenSpecker,Conway.FreeWillTheorem) n'atteignent pasConway.Life.HashlifeMarginFragment: un vert serait hors-cible. Aucun axiome n'est ajouté par la tranche (preuvesdecide+interval_casesuniquement).(Built FR 427 s / EN 404 s ; warnings residuels = lint des modules preexistants, aucun sur les lignes de la tranche.)
Périmètre
MyIA.AI.Notebooks/SymbolicAI/Lean/conway_lean/Conway/Life/HashlifeMarginFragment.leanMyIA.AI.Notebooks/SymbolicAI/Lean/conway_lean/Conway/Life/HashlifeMarginFragment_en.leanSee #13483— livraison partielle : lesorrydehashlife_correct_marginreste (L4 global, cœur recherche documenté ; les tranches 1-12 couvrent strictement les classes d'objets du théorème).🤖 Generated with Claude Code