Your numbers are right and I reproduce all of them. Two points of precision, then the place where I think the reading breaks, then your question, which turned out to be the most useful part of the comment.
Exact values. des and les are the same lexicon entry up to spelling, both (det, None, pl), so their marginals are not close, they are identical: 0.30888β¦ on the short grammar, 0.15327783β¦ on the long one. Your 0.1536 / 0.1535 split is Monte Carlo noise. Singulars are 0.27555β¦ and 0.13714β¦ And your mechanism is right: E[accord_det_nom | det] is 3/4 for a plural determiner against 1/2 for a singular one, and the None is what buys it.
Now run the same probe on position 1. Short grammar, E[R | x_p = t], uniform elsewhere, closed form:
pos 0 (det) des 0.3089 les 0.3089 | le la un une 0.2756 +0.0333 PLURAL
pos 1 (noun) chat chien fleur table 0.2944 | chats ... 0.2778 +0.0167 SINGULAR
pos 2 (verb) all six 0.2789 flat
The two positions point in opposite directions, and the two causes are orthogonal, one per feature:
genre number mean
credit to a singular noun 2/3 2/3 2/3
credit to a plural noun 2/3 1/3 1/2
credit to 'le' (det sg) 1/2 1/2 1/2
credit to 'les' (det pl) 1 1/2 3/4
The plural determiner's edge is entirely in genre, so it is your None. The singular noun's edge is entirely in number, so it is a different accident: I wrote 4 singular determiners and only 2 plural ones. Two independent lexicon accidents, two different features, opposite signs.
That is why the order-1 greedy sequence is invalid:
'des chat chante' -> INVALID, R = 0.8333
If the coordinate-wise greedy optimum is not a solution, the coordinates are contradicting each other. That is the signature, and it is the sentence my article never wrote. It gives both tables and it gives the invalid greedy sequence, and it never says why the sequence is invalid. You read position 0, stopped, and drew exactly the inference my text authorised. That is a writing defect on my side, not a measurement one.
And position 1 is the one that names the branch. Determiner, adjective and verb all agree with the noun. The noun is the only feature carrier, so "all-plural sublanguage" is a claim about the noun's number, not the determiner's.
Which position wins? I ran it, and it is the noun.
Exact gradient, same GRU, same objective E[R] + Ξ²Β·H, but p(s) obtained by enumerating all 8000 sequences, so zero sampling noise:
beta seed valid% modes sg% pl%
0.01 0,1,2 100.00 12.0 100.0 0.0
0.02 0 99.95 24.0 100.0 0.0
0.02 1 99.93 12.0 100.0 0.0
0.02 2 99.94 24.0 100.0 0.0
Six of six. Take the noise away and it goes singular every time. Sampled REINFORCE at Ξ² = 0, pure reward, no entropy bonus, 3 seeds: 100% singular, 1.0 effective mode, all three. Full sweep, 8 Ξ² values by 3 seeds, 24 runs: 15 singular, 9 plural. At your Ξ² = 0.02 specifically, seed 0 is plural at 18.6 modes (the run you are quoting), seeds 1 and 2 are singular at 11.7 and 12.0.
So: the collapse is settled before episode 1, and I agree. The corner is not. Which vacuous corner it lands in is a seed lottery running about 2:1 toward singular. Your closed-form direction is real, it is just outvoted by the position it does not look at.
The diversity number cannot arbitrate either, because the singular sublanguage also holds exactly 24 of the 48 (four determiners at 6 each, against les 12 plus des 12). 18.6 is 77.5% of 24, but seeds 1 and 2 sit at ~49% of their 24 at the same Ξ².
Your question about the long grammar. I had not run it, and I should have. Its low validity had me filing it as a scaling failure rather than as a collapse worth analysing, which was a mistake. Five seeds, Ξ² = 0.08, 40k samples each:
seed valid% distinct valid number of the noun, valid mass
0 6.98 144 100.0% sg
1 9.41 144 100.0% sg
2 6.79 151 99.7% sg
3 7.54 144 100.0% pl
4 7.27 148 99.9% sg
It does collapse to a single number family. 144 distinct valid sentences is exactly one family out of 288, the split being perfectly symmetric. And the family is singular in 4 seeds of 5. Same answer as the short grammar, same direction, and the plural determiner edge loses again.
Structurally the vacuous corner is not even there. Adjectives spell out all four genre-number combinations with no None anywhere, so E[accord_adj_nom | noun] is exactly 0.5 for every noun and the adjective marginal is perfectly flat (0.1329 for all eight). Going plural now buys the free genre on the determiner alone, one subscore of four instead of one of three. Both edges shrink by exactly (3/4)(20/31) = 0.4839: det +0.0333 to +0.0161, noun +0.0167 to +0.0081. Adding an agreement rule added denominator and no counter-signal. The order-1 greedy sequence becomes des grand chat chante bien, still invalid.
Where you are simply right: the probe belongs before training, it costs one enumeration, and it is a protocol step rather than a post-hoc analysis. It already existed in the repo (gradient_exact.py, part 1, which prints both tables) but buried in an analysis script, which is why I did not reach for it when writing the article. It is now its own thing, src/test2_grammar/sonde_ordre1.py, all positions, both grammars, plus the long-grammar measurement above, credited to you in the docstring.
The lesson I would now write on it is not "find the vacuous corner". It is compute every position, because the corner is where they disagree, and the sign of the disagreement is not readable from the first token.