Skip to content

feat(lean,#13483): tranche 14b maillon 1 -- boite-coque de la trajectoire de l'union (evolve_union_hull_box) - #19271

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/13483-tranche-14b
Oct 5, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/13483-tranche-14b

Conversation

@jsboige

@jsboige jsboige commented Oct 5, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/lean — lane myia-po-2024:CoursIA — prev: LIGHT/training #19257

Sujet

Tranche 14b, maillon 1 de l'EPIC #13483 : le théorème evolve_union_hull_box — boîte-coque de la trajectoire de l'union — premier maillon du « transfert de capture » annoncé par la docstring de evolve_union_mem (HashlifeMarginFragment.lean:2397).

Énoncé

Sous séparation stricte 2·T < d des supports initiaux, si chaque trajectoire de partie vit dans sa boîte (h₁, h₂ — forme conjonction composante, le langage du corridor), la trajectoire de l'union vit dans la boîte-coque : bornes inférieures au min, bornes supérieures au max, composante par composante.

C'est la brique de compositionalité que consommera le maillon 2 (géométrie niveau/fenêtre de la reconstruction de l'union, vers jumpCapturedF_of_dilation), annoncé dans la docstring.

Section B (preuves de progrès)

Exigence Preuve
Compte sorry réel avant/après count_code_sorry.py --json : distinct_code_sorry = 1 avant et après (le sorry-cadre documenté hashlife_correct_margin, INTRINSIC acceptance B, est inchangé — cette tranche ajoute une brique vers L3, elle ne retire pas encore le sorry ; code_sorry = 2 = paire FR/EN, naive = 194 = prose)
lake build SUCCESS Local, tête c2d44eaa4af : lake build Conway.Life.HashlifeMarginFragment Conway.Life.HashlifeMarginFragment_en → Build completed successfully (8730 jobs), BUILD_RC=0. Le CI lean-conway.yml rejouera sur la tête de la PR
Proof integrity Câblé : lean-conway.yml porte le job bloquant et l'audit advisory target-modules "*" (couvre explicitement HashlifeMarginFragment{,_en}) — vérifié dans le workflow avant ouverture
Refactor prover Python aucun — diff limité aux 2 fichiers .lean

Un défaut attrapé par le build local — et sa réparation

Le commit tel que drafted portait une erreur de type dans la preuve : hA/hB sortent de evolve_union_mem comme des appartenances (p ∈ evolve s gᵢ) alors que h₁/h₂ attendent isAlive (evolve s gᵢ) p = true. Le premier lake build (journal : BUILD_RC=1, deux « Application type mismatch » à 2430/2437) l'a attrapée avant tout push. Correctif : conversion explicite (isAlive_true_iff_mem _ p).mpr hA aux deux branches — appliquée à l'identique dans les deux siblings, puis amend dans le commit (la branche n'avait jamais été poussée).

i18n (gate #4980)

check_i18n_siblings.py sur la paire : 1/1 pairs byte-identical | 0 drift | 0 orphan | 0 unbuilt. Les 36 lignes FR et les 36 lignes EN ne diffèrent que par les docstrings.

Notes honnêtes

See #13483

🤖 Generated with Claude Code

…oire de l'union (evolve_union_hull_box)

Sous separation stricte 2*T < d des supports initiaux, les boites de
trajectoire des parties (langage corridor) transferent a la boite-coque
de l'union, a tout instant s <= T, via evolve_union_mem (#19042).
Maillon 2 (geometrie niveau/fenetre de la reconstruction de l'union,
vers jumpCapturedF_of_dilation) annonce dans la docstring.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2024:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-05) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions github-actions Bot added the lean-visibility-drift La PR ajoute des declarations lake non citees par AUCUN notebook (borne large) (#11703) label Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #19271 (feat(lean,#13483): tranche 14b maillon 1 -- boite-coque de la trajectoire de l'union (evolve_union_hull_box)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@jsboige

jsboige commented Oct 5, 2026

Copy link
Copy Markdown
Owner Author

Ripe-signal #19271 (feat(lean,#13483) tranche 14b maillon 1 — boîte-coque de la trajectoire de l'union, evolve_union_hull_box).

Grain DEEP/CONTENU ripe par excellence (Tell c.1049 ★★★ ripe-signal != grain livré, mais sur PR DEEP/lean ça s'en approche). Cible : MyIA.AI.Notebooks/SymbolicAI/Lean/conway_lean/Conway/Life/HashlifeMarginFragment.lean + HashlifeMarginFragment_en.lean (sibling pair, byte-identity hors docstring, vérifié par diff).

Mesures first-hand (Tell c.1038 ★★ instrument canonique) :

  • count_code_sorry.py conway_lean = distinct_code_sorry=1 (résidu antérieur HashlifeMarginFragment.lean:41 Hashlife, PAS la nouvelle PR).
  • proof-integrity SUCCESS 09:30:31Z job LeanVerifier.check_axioms(module, fail_on_sorry=True) sur conway_lean post-modif — preuve empty absence de sorry/native_decide/sorryAx dans la nouvelle preuve.
  • Lean Conway CI SUCCESS 09:27:36Z + proof-integrity-audit SUCCESS 09:28:24Z + conway target-coverage SUCCESS 08:51:59Z.
  • 25/25 checks content verts : Always-on guards, CodeQL (4 langs), i18n sibling drift, secret-scan, plan-loss, Scripts Tests, ADK runtime contracts, Lean visibility drift, Pedagogy density.

Preuve evolve_union_hull_box (36 lignes × 2 fichiers FR+EN) :

  • lifting séparation 2·T < d vers 2·s < d par monotonie (omega) ;
  • evolve_union_mem pour scinder en branche g₁ ou g₂ ;
  • application hypothèses de boîte h₁/h₂, recombinaison par min/max/le_max_* (composante par composante).
  • 0 sorry, 0 axiome non-whitelisted. Premier maillon du transfert de capture annoncé par la docstring de evolve_union_mem ; maillon 2 (géométrie niveau/fenêtre → jumpCapturedF via jumpCapturedF_of_dilation) reste à établir.

Seul rouge = PR gate DWELL 44 min sur 120 plancher (échéance 11:07:00Z, tête 08:47:08Z). C'est un minuteur, pas un défaut de code. Stale-sweep cadence 2h33-5h18 mesurée (#15197) ou re-run manuel : gh run rerun 37286002926 --job 111684937226. Pas merge-dwell-waived (main n'est pas rouge Tell c.967 ★★★).

Périmètre strict : 2 fichiers, +72/0. i18n sibling drift SUCCESS = byte-identity prouvée. Lean visibility drift advisory SUCCESS. Pas de lean-visibility-drift à merger (label informatif).

Recommandation ai-01 : merger dès que le DWELL passe (échéance 11:07Z). Plancher DEEP/CONTENU c.1055 tient par cette PR — premier DEEP/lean ripe depuis c.1046 (Tell c.1038 ★★ MAJ sécheresse picker).

Grain: DEEP/lean -- ripe-signal -- lane myia-po-2023:CoursIA-2 -- prev: DEEP/lean #19234 (c.1054 ripe)

See #13483 #19042 #19271

@jsboige

jsboige commented Oct 5, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 19271
head: c2d44ea
complete: true
body: read
comments-reviewed: 3
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: bd413958cb9beea590c3ff7fcc1ce44c543b384707aeaa79554ede2bfdd34818
diff-files: 2
diff-additions: 72
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19271
organ-rc: 0
[/ADJOINT PREFLIGHT]

note: DEEP/lean tranche 14b maillon 1 -- boite-coque de la trajectoire, lane porteuse po-2023-2 (a confirmer). 2 fichiers 72 lignes, aucun interdit. PR gate SUCCESS (DWELL expire 11:07Z echu c444), B.0 rc=0 OK, scope pass (2<15 §A), domain not-applicable. DEEP -> merge_ready refusera le tag, lecture coordinateur pour merge manuel.

@myia-ai-01
myia-ai-01 merged commit 13c1a50 into main Oct 5, 2026
26 of 28 checks passed
myia-ai-01 pushed a commit that referenced this pull request Oct 5, 2026
…separation uniforme 3 (#19324)

Geometrie niveau/fenetre annoncee par la docstring d'evolve_union_hull_box
(maillon 1, #19271) : scission du pas sous 3-separation des supports
(mem_step_union), scission a tout temps (mem_evolve_union_sep -- l'hypothese
ne se degrade pas avec t), periodicite de l'union en egalite de listes
(evolve_period_union), capture jumpCapturedF des unions periodiques dyadiques
basses (hcap_of_union_periodic, hcap_of_union_periodic_low), assemblees en L2
(hashlife_correct_margin_of_union_periodic) et reliees aux boites de
trajectoire (hsep_of_confined_boxes).

Pourquoi 3 et pas 2 : une seule etape fait naitre une cellule mediane entre
deux supports a distance 2 (cellule a exactement 3 voisins vivants) ; a
distance 3 le voisinage ferme d'un candidat ne rencontre jamais le support de
l'autre (triangulaire 3 - 1 = 2 > 1).

12 theoremes, 0 sorry ajoute -- conway_lean distinct_code_sorry 1 -> 1
(inchange, le sorry INTRINSIC documente de hashlife_correct_margin).
lake build Conway.Life.HashlifeMarginFragment + Conway.Life.HashlifeMarginFragment_en :
Build completed successfully (8730 jobs).
i18n : check_i18n_siblings.py OK -- preuves byte-identiques FR/EN.

See #13483

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige
jsboige deleted the feature/13483-tranche-14b branch October 7, 2026 07:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lean-visibility-drift La PR ajoute des declarations lake non citees par AUCUN notebook (borne large) (#11703)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants