Skip to content

ci(lean,#14904): cabler proof-integrity (lean-axiom.yml) sur percolation_lean - #14917

Merged
jsboige merged 1 commit into
mainfrom
feature/14904-lean-percolation
Sep 6, 2026
Merged

jsboige merged 1 commit into
mainfrom
feature/14904-lean-percolation

Conversation

@jsboige

@jsboige jsboige commented Sep 6, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/guard — lane myia-po-2026:CoursIA-2 — prev: MED/genai #14593

Quoi

Câble le gate proof-integrity (lean-axiom.yml) sur percolation_lean. Le lake n'avait aucun workflow dédié : B.3 de pr-review-discipline s'y lisait « non applicable », ce qui est l'absence d'une mesure, pas un vert. Cette PR ferme le trou.

Scope (borné)

  • .github/workflows/lean-percolation.yml — nouveau, gabarit lean-sensitivity.yml (petit lake, sorry-filter-mode: real)
  • docs/reference/lean-axiom-coverage.md — tables triage (§2) et câblage (§4) : ajout percolation

Aucune modification des preuves Lean. Aucune touchée au catalogue.

Paramètres mesurés (pas recopiés, 2026-09-06)

Triggers paths: (acceptance 3)

.lean / lakefile.lean / lean-toolchain du lake + le workflow lui-même + lean-axiom.yml + les deux entrées Python du gate (lean_server.py, lean_utils.py) — cf #8712/#8722/#8951.

Contrôle positif (acceptance 4)

La mutation sorry (commit bd74b8f2b, theorem positive_control_probe : False := by sorry ajouté à Percolation/Basic.lean) a été posée sur une branche jetable probe/14904-red, puis supprimée (locale + distante) une fois le rouge observé. Elle n'apparaît dans aucun commit du PR (git log de feature/14904-lean-percolation = 1 commit de câblage). Le rouge prouve que le gate mord (sorryAx + baseline dépassée) ; le vert sur la tête propre prouve que le câblage ne casse rien.

Note, délibérément hors scope

Le placement du lake (MyIA.AI.Notebooks/Probas/Applications/Percolation/ vs le Probas/percolation_lean/ prescrit par #14871) est une divergence antérieure à #14896, nommée ici pour ne pas se perdre, traitée séparément (cf #14904 §Hors scope). Le cablage des autres lakes non couverts ne relève pas de cette PR.

See #14871. See #14896. See #14897. See #14907.
Closes #14904.

…ion_lean

Le lake n'avait aucun workflow dedie : B.3 se lisait "non applicable", ce qui
est l'absence d'une mesure, pas un vert. Cree lean-percolation.yml (gabarit
lean-sensitivity.yml) : job ci -> lean-build.yml (sorry-baseline "0",
sorry-filter-mode real) + job proof-integrity -> lean-axiom.yml
(target-modules "*", allow-axioms "", fail-on-sorry true).

Mesure fraiche des parametres (pas recopie) : distinct_code_sorry = 0 sur
13 fichiers, 0 native_decide, cloture #print axioms = [propext,
Classical.choice, Quot.sound] (sous-ensemble des defauts du workflow
reutilisable). Triggers paths : *.lean / lakefile / lean-toolchain du lake +
le workflow lui-meme + lean-axiom.yml + agent_tests/lean_server.py +
agent_tests/prover/lean_utils.py.

Met a jour docs/reference/lean-axiom-coverage.md (tables triage et cablage).

Co-Authored-By: Claude-Code <noreply@anthropic.com>
@jsboige jsboige added the lean Lean 4 formalization (proofs, ports, theorem mining) label Sep 6, 2026

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] — #14917 review (guard proof-integrity percolation_lean)

Vérifications firsthand (sources à main + head ec991e33) :

  1. ✅ Inputs du caller vs workflows réutilisables — les 5 clés passées à lean-axiom.yml@main (project-path, display-name, target-modules, allow-axioms, fail-on-sorry) et les 4 clés de lean-build.yml (sorry-baseline, sorry-filter-mode, …) sont toutes déclarées required dans les workflow_call à main — aucun input fantôme.
  2. ✅ Baseline mesurée, pas recopiée — grep sorry sur les 12 fichiers .lean du lake (2 racine + 10 sous-dossier) : 0 partout, FR comme _en → sorry-baseline: "0" + fail-on-sorry: true cohérents avec un lake fully-proven. Le compte "6 modules" de la table §2 correspond aux 6 fichiers FR.
  3. ✅ allow-axioms: "" justifié — les defaults de lean-axiom.yml incluent déjà propext, funext, Classical.choice, Quot.lift, Quot.mk, Quot.sound ; l'empreinte citée [propext, Classical.choice, Quot.sound] en est un sous-ensemble, donc whitelist vide = correct (tout nouvel axiome → rouge, c'est le but).
  4. ✅ target-modules: "*" — légitime per #10889 (dérivation runtime, ne peut pas dériver hors-vue), _en exclus par défaut = cohérent avec la mesure FR-only.
  5. ✅ Paths de déclenchement : le gate se ré-exécute sur ses propres sources + lean_server.py/lean_utils.py (entrées réelles du step axiom) — même rationale que lean-galois/conway (#8951/#8712), bien repris.
  6. ✅ Tables §2/§4 de lean-axiom-coverage.md : ligne ajoutée aux deux tables, énoncés concordants. Security scan : 0 match.

La phrase clé du body — « l'absence d'une mesure, pas un vert » — est exactement la bonne lecture de B.3. Câblage propre, scope borné, aucune preuve touchée. (contrainte token : COMMENT only)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lean Lean 4 formalization (proofs, ports, theorem mining)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI/Lean] Cabler lean-axiom.yml sur percolation_lean — B.3 non applicable par absence de workflow

1 participant