Chapter 3 · section 5 of 6
In production
The deployed checker, checkLawAnswer in worker/src/learner-ask.ts, asks the same four questions after two gates, one for a learner with no state and one for a state’s law file that could not be read, and its uncited refusal also covers a cited law that carries no citation. Its definition of figure is longer, and three of its additions show how the definition grows.
Ordinals, on the law’s side only. Wyoming’s code keeps a child “who has not reached his ninth birthday” out of the front seat, and the correct “until they turn 9” was refused as ungrounded in English and in Spanish on 9 October 2026. So ordinalsIn reads “ninth” as 9 and “twenty-fifth” as 25, for the law’s side of the comparison, and never from the answer, where “the first offense” is not a figure. And not below fifth: “first offense” and “second or subsequent offense” are in nearly every penalty section, and grounding 1 and 2 on them would let an invented “2 points” through. The comment on the function records who caught that: the verifier, the same day.
A spelled “one” before a unit. figuresIn drops the word “one” from every text, for the pronoun reason above. On the law’s side that left Texas’s “confinement in jail for a term not to exceed one year” unable to ground “up to 1 year in jail”, and the texting fine was refused four times in six. So spelledOnesIn grounds a 1 when a law says “one year”, “one point”, “one passenger”, and only before a unit, because “one of the following” is in nearly every section.
A fraction of a per cent. Connecticut’s code writes its blood-alcohol limit as “eight-hundredths of one per cent”, and the correct “0.08” could not be grounded against the very section that sets it. percentFractions reads that phrase as 08.
for (const number of figuresIn(`${law.law}\n${quoted}`, 'en')) grounded.add(number)
for (const number of ordinalsIn(`${law.law}\n${quoted}`)) grounded.add(number)
for (const number of spelledOnesIn(`${law.law}\n${quoted}`)) grounded.add(number) Three lines; percentFractions runs inside the first, and the other two each answer a measured failure. Each is a widening of what counts as grounded, never a loosening of the rule that every figure must be. The deployed function also takes extra figures on a question asked across every state at once, the counts nationwideGrounds computes: for each topic the question matched, the number of states with a law and the number without, and the number of states with none on any topic, because “46 states set a limit” is a count no law states and refusing it would refuse the comparison itself. Nothing else: “39 states” is still a figure nobody gave.