The engine works on dense arrays, not on the operator's objects.
normaliser checks the configuration, derives anchored, partially fixed and
mobile statuses from the reservations themselves, and suspends an excluded
person's reservations without stopping on them. It never refuses a room
that is too small: that is a property of the configuration, which the
diagnosis names and the search refuses (§ 5.9). A plan converts both ways
between ids and indices, seats in ascending id.
Checked: a reservation after an excluded one, and a conflict found under
« tous », each fail their mutant; an independent oracle agreed throughout.
--- FR ---
[ADD] moteur : configuration normalisée en une instance indexée
Le moteur travaille sur des tableaux denses, pas sur les objets de
l'opérateur. normaliser vérifie la configuration, dérive les statuts
ancré, partiellement fixé et mobile des réservations elles-mêmes, et
suspend les réservations d'un exclu sans s'y arrêter. Il ne refuse jamais
une salle trop petite : c'est une propriété de la configuration, que le
diagnostic nomme et que la recherche refuse (§ 5.9). Un plan passe dans
les deux sens des ids aux index, sièges par id croissant.
Vérifié : une réservation après celle d'un exclu, et un conflit découvert
sous « tous », font chacune tomber leur mutant ; un oracle indépendant
concorde partout.
Assisted-by: Claude Opus 5.5
The demonstrations and the search must give the same plan from the same
seed on any machine, so every draw comes from one generator with explicit
state. PCG32 runs on 16-bit limbs without BigInt, seeded as
pcg32_srandom_r; bounded draws reject as pcg32_boundedrand_r does, and the
shuffle loop is the reference demo's. Expected values come from compiling
and running the reference implementation, never from this code.
Checked: outputs, coins, dice and deck match the reference demo; a wrong
multiplier, rotation or remainder each fail.
--- FR ---
[ADD] prng : PCG32 vérifié contre l'implémentation C de référence
Les démonstrations et la recherche doivent rendre le même plan pour la
même graine sur toute machine : chaque tirage vient d'un seul générateur à
état explicite. PCG32 calcule par mots de 16 bits sans BigInt, ensemencé
comme pcg32_srandom_r ; le tirage borné rejette comme
pcg32_boundedrand_r, et la boucle de mélange est celle de la démo de
référence. Les valeurs attendues sortent de l'implémentation de référence
compilée et exécutée, jamais de ce code.
Vérifié : sorties, pièces, dés et paquet égalent la démo de référence ;
un multiplicateur, une rotation ou un reste faussés échouent chacun.
Assisted-by: Claude Opus 5.5
The engine to come must be proven against oracles under node in seconds,
so the skeleton sets three test projects: node, watched; node-long; and a
real Chromium that reads computed styles in both themes. The version
lives in version.json alone; a check refuses eight divergences — technical
form, generated module, changelog head, stray version strings — and a
build guard keeps test files and fixture assets out of the bundle.
Checked: on this commit alone, 73 node tests, 7 browser tests and the
version check pass; the guard fails on a fixture joined as an asset.
--- FR ---
[ADD] squelette : application web Capacitor qui affiche sa version datée
Le moteur à venir doit s'éprouver contre des oracles sous node en
quelques secondes : le squelette pose trois projets d'épreuve — node,
sous surveillance ; node-long ; et un vrai Chromium qui lit le style
calculé dans les deux thèmes. La version vit dans version.json seul ; un
contrôle refuse huit divergences — forme technique, module engendré,
tête du changelog, chaînes de version égarées — et une garde de
construction tient fichiers et données d'épreuve hors du paquet.
Vérifié : sur ce commit seul, 73 épreuves node, 7 navigateur et le
contrôle de version passent ; la garde échoue sur une donnée jointe.
Assisted-by: Claude Opus 5.5