Logic-Lens
Reconnaître l’invariant mathématique d’une fonction JavaScript, et savoir s’abstenir.

Un Transformer Encoder TensorFlow.js classe une fonction parmi 25 formules canoniques, et rejette explicitement le code qui n’en est aucune (open-set recognition) au lieu d’halluciner avec aplomb.
25 + 1formules + classe de rejet
~4 000paires générées
EncoderTransformer
CPUaucun GPU
L’idée
Lire une fonction et reconnaître la formule qu’elle implémente : donner F(n) = F(n−1) + F(n−2) à partir d’un Fibonacci récursif, avec un score de confiance.
Reconnaître une formule connue est facile. Savoir s’abstenir quand le code n’en est aucune, c’est tout l’enjeu.
Un classifieur peut être confiant et faux
Un classifieur fermé répond toujours quelque chose, parfois à 98 % de confiance sur du code sans rapport. Un seuil d’entropie n’attrape pas ces fausses certitudes.
J’ai ajouté une 26ᵉ classe « aucune », entraînée sur du code hors-distribution. L’abstention devient une prédiction de première classe, vérifiable.
Le pipeline
- Dataset : ~150 variantes par formule via mutation d’AST (renommage, réordonnancement, inlining, équivalences)
- Encodage des séquences AST en tenseurs
- Transformer Encoder entraîné sur CPU
- Interface web en cinq onglets et API