Repository navigation
feat(lean,#15066): pont modal Tweety<->FFL — FormalLogic.ModalBridge (tranche C) - #17017
Conversation
…(tranche C)
Le lake `formal_logic_lean` consomme le paquet ModalLogic (fork
MyIntelligenceAgency @ 7196813, branche coursia-v4.33.1-compat : upstream
9c485ca + 3 commits de compatibilite v4.33.1, 3 fichiers +17/-3, aucun
changement semantique) et un module `FormalLogic.ModalBridge` certifie la
discrimination K/T/K4/S5 par le kernel :
- `forces_kdist` : K (distribution) valide sur tout cadre, sans hypothese de
structure — la normalite semantique ;
- `T_invalid` / `four_invalid` / `five_invalid` : contre-modeles finis (mondes
sur Nat, sous-cadre {0,1}/{0,1,2}, autres mondes isoles), chacun violant
exactement la condition frame de son axiome (irreflexif / non transitif /
non euclidien) ;
- cote S4 (`Fin74.Kripke`, cadres reflexifs et transitifs par construction) :
`forces_dia_of_refl` et `forces_dia_dia`, duaux diamant de T et 4.
Les cadres temoins sont des `abbrev` (reductibles) : c'est ce qui rend les
numeraux `(0 : model.World)` synthesiables (`OfNat` traverse la projection
jusqu'a `Nat`) — un `def` (semi-reductible) le refuse. Les enonces portent
`Satisfies model x phi` (forme explicite) : la notation `x |= phi` est
polymorphe et ne resout pas le modele depuis le seul type de `x`.
Exigences Lean :
- B.1 : formal_logic_lean | files 5 | code_sorry 0 | distinct_code_sorry 0 ;
- B.2 : lake build FormalLogic.ModalBridge -> Build completed successfully (1021 jobs) ;
- B.3 : NON APPLICABLE (a) — lean-axiom.yml n'est pas cable sur ce lake.
See #15066
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
Path-collision (organ #13359/#13615)Cette PR #17017 (
|
|
Verdict du build du défaut (agrégateur Build complet
La preuve B.2 est complète sur les deux cibles : module isolé |
|
[ADJOINT PREFLIGHT] |
|
[ADJOINT PREFLIGHT] Re-stamp PERIME-SURFACES du dossier precedent (meme head, verdicts identiques) — seule l'empreinte de discussion avait bouge. Checks verifies latest-wins-green firsthand a l'instant. |
…pke/Lean (Tranche C) (#17122) * Add: Tweety-3b-Modal-Lab-Lean — labo modal croise Kripke/Lean, Tranche C #15066 Notebook consommateur du pont FormalLogic.ModalBridge (#17017) : - syntaxe MlParser Tweety reelle (K/T/4/5, bug SPASS #1334 documente) - moteur Kripke Python + balayage exhaustif 512 cadres x toutes valuations : T=non-reflexifs 448, 4=non-transitifs 341, 5=non-euclidiens 473, K=0 (egalites exactes d'ensembles assertees) - 4 certificats kernel Lean via lake env lean (tous exit 0, 0 sorry, #print axioms mesure) + 3 exercices stubbes C.1 - README : entree 3b, comptes re-mesures (companion 3->4, total 34->35), changelog v1.2.4 Papermill : 34/34 cellules, 13/13 code executees, 0 erreur, 0 fuite chemin machine (clean() a la source, lecon #16977). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Fix: hrefs Tweety-02d -> issue #16888 (fichier non merge, levee review Hermes PR #17122) Les 4 hrefs vers Tweety-02d-FOL-Lab-Lean.ipynb (cellules 0 et 33) ciblaient un fichier vivant dans #16888 (tranche B, OPEN). Remplaces par l'URL d'issue. check_notebook_navlinks.py : 0 lien casse. Tables de formules modales intactes (les 8 autres findings = FP scanner, verdict Hermes po-2026, non touches). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: DEEP/lean — lane myia-po-2024:CoursIA — prev: DEEP/research-code #16903
Summary
Tranche C de l'EPIC #15066 : le lake
formal_logic_leanconsomme désormais lepaquet ModalLogic (FFL) et un module
FormalLogic.ModalBridgecertifie ladiscrimination des logiques modales K/T/K4/S5 par le kernel.
Pourquoi un fork (mesures, pas hypothèses)
FormalizedFormalLogic/ModalLogic:origin/mainrestelean-toolchain v4.31.0(mesuré 2026-09-20, dernier push 2026-08-01), 14 branches toutes pré-bump, 0 PR ouverte —
aucune rev ne compile sous le toolchain 4.33.1 du lake ;
ModalBridgeforceModal.LogicSymbol(public imports :Kripke.Basic → Logic.Basic → Formula.Basic → Modal.LogicSymbol) — aucun import plus étroit ;MyIntelligenceAgency/ModalLogic@71968137b917a708c700047e1e6d3eb6cc4ed078(branche
coursia-v4.33.1-compat, = upstream9c485ca95e35+ 3 commits de compat,Modal/LogicSymbol.lean,Vorspiel/AdjunctiveSet.lean,Logic/Semantics.lean—+17/−3,zéro changement sémantique) :
83367d1—Modal/LogicSymbol.lean:347,430:by dsimp [boxItr]laisse un résidudéfinitionnel (
map f [φ] = [f φ]) sous 4.33.1 →by simp [boxItr](fermé parList.map_cons/List.map_nil) ;7d29f68—Vorspiel/AdjunctiveSet.lean: mathlib v4.33.1 a retiré les instancesHasSubset (Set α)/HasSubset (Finset α)(la notation⊆s'élabore désormais enLE.leviaSet.instLE/Preorder.toLE) — la classe étendHasSubset α, d'oùFields missing: Subset; restaure les deux instances sur les ordresLEexistants ;7196813—Logic/Semantics.lean: fermeture desetOf_iff— la dépréciationsetOf→Set.ofPred(v4.33.1) casse lesimpqui réduisaitφ ∈ setOf P.Contenu
FormalLogic/ModalBridge.leanforces_kdist: l'axiome K (distribution) est valide sur tout cadre — sans hypothèsede structure (normalité sémantique, preuve 2 lignes) ;
de son axiome :
T_invalid(cadre irréflexif, relation0≺1seule),four_invalid(chaîne
0≺1≺2non transitive),five_invalid(éventail0≺1, 0≺2non euclidien) —mondes sur
ℕ(sous-cadre fini {0,1}/{0,1,2}, autres mondes isolés), preuves réduitesà
by decidesur des égalitésℕ. Cadres enabbrev(reducibles) : c'est ce qui rendles numéraux
(0 : model.World)synthétisables (OfNattraverse la projection jusqu'àℕ) — undefle refuse, piège mesuré sur la première version de cette section ;Fin74.Kripke, cadres réflexifs et transitifs par construction —rel_refl/rel_transsont des champs de données) :forces_dia_of_refl(dual diamant de T) etforces_dia_dia(dual de 4) — la structure du cadre les donne en une ligne chacun.Le notebook consommateur
Tweety-3b-Modal-Lab-Lean.ipynb(patron #16888 Tweety-02d) est legrain suivant de la lane — pas dans cette PR (un sujet par PR).
Manifeste — effet mesuré de l'ajout
lake-manifest.json: 19 → 20 paquets, aucun supprimé,ModalLogicajouté (url fork, rev7196813…,inputRev= rev,configFile: lakefile.toml). Six deps héritées changent de pinparce que le manifest de ModalLogic les apporte :
«doc-gen4»v4.33.1 → v4.31.0,BibtexQuerymaster → nightly-testing, etLeanTypst/MD4Lean/UnicodeBasic/leansqlitere-résolues à la tête de leur branche. Ce sont des outils de documentation, hors du build de
la librairie — mesuré :
0occurrence dedoc-gen4/DocGen4/Bibtex/LeanTypstdans le log debuild. Les revs des paquets qui sont dans le build (
plausible,batteries,Qq,proofwidgets) restent ceux de mathlib v4.33.1 : c'est pourquoirequire mathlibest laisséen dernier (l'ordre décide de la résolution des revs transitives).
Exigences Lean B.1-B.3
python scripts/lean/count_code_sorry.py --repo D:/Dev/CoursIA-ffl-modal-lab --json→
MyIA.AI.Notebooks/SymbolicAI/Lean/formal_logic_lean | files 5 | code_sorry 0 | distinct_code_sorry 0(fichier nouveau, aucun sorry ; les 3 commits du fork n'enintroduisent aucun non plus — diff mesuré
+17/−3, fichiers nommés plus haut) ;lake build FormalLogic.ModalBridgeSUCCESS sur le contenu du head —RC=0,0ligneerror, « Build completed successfully (1021 jobs) », toolchain v4.33.1 /mathlib v4.33.1 (chaîne ModalLogic complète compilée). Le build du défaut (agrégateur
FormalLogic.lean, qui importe le module) tourne au même contenu — verdict posté encommentaire dès qu'il tombe ;
lean-axiom.ymln'est pascâblé sur
formal_logic_lean(vérifié :formal_logicabsent destarget-moduleset aucunworkflow
lean-formal-logic*.yml).Verdict SOTA
SOTA-OK — le vrai paquet upstream FFL ModalLogic est consommé (pin exact du fork
documenté ci-dessus), témoins et certificats produits par le kernel Lean, aucune
réimplémentation locale.
Notes review
FormalLogic.lean(agrégateur) : +1 import — chevauchement attendu avec feat(tweety,#15066): laboratoire FOL Tweety vers certificats Lean #16888 (FolBridgeajoute le sien) : rebase trivial pour le second mergé ;
lake-manifest.json: entrée ModalLogic = fork (url + rev7196813…), le reste inchangé ;AdjunctiveSetdu fork est documenté dans le memory de la lane(
mathlib-v4-33-hassubset-le-migration) — tout consommateur FFL sous 4.33 le rencontrera.See #15066
🤖 Generated with Claude Code