<!-- canonical: efficientnewlanguage.org/ai/examples/975-the-car-ten-over-was-doing-forty-three-where-the-other-stopped | ai_layer_version: 0.1.0 | updated: 2026-09-23 -->

# Example 975 — The car ten over was doing forty three where the other stopped

`the_car_ten_over_was_doing_forty_three_where_the_other_stopped.eml` - A crate falls off a truck 34.6 metres ahead of two cars. The car at the 50 km/h limit stops just short of it; the driver of the car at 60 had reasoned that ten over is only a fifth faster and would need only about a fifth more road to stop. How fast the second car is still going when it reaches the crate is computed below.

## EML

```eml
# Self-authored for the EML case corpus (no external origin). A crate falls off a
# truck 34.6 metres ahead of two cars. The car at the 50 km/h limit stops just
# short of it; the driver of the car at 60 had reasoned that ten over is only a
# fifth faster and would need only about a fifth more road to stop. How fast the
# second car is still going when it reaches the crate is computed below.
#
# The reasoning is careful. 60 is exactly a fifth more than 50; the driver's
# reaction time is the same one and a half seconds at either speed; the brakes
# and the road are the same; and the intent is exactly 'keep a safe margin'.
#
# The reaction time is spent at full speed, so the faster car covers 25 metres
# before braking begins, where the slower one covers 20.8; and braking takes
# away the square of the speed, not the speed. Where the car at 50 stops, the
# car at 60 has braked for only 9.6 metres and is still doing 43 km/h, carrying
# half of its energy into the crate.

50 => limit_kmh
60 => speed_kmh
15 => reaction_tenths_of_a_second
70 => braking_tenths_of_a_m_per_s2

int(limit_kmh * 1000 * reaction_tenths_of_a_second / 360) => reaction_distance_at_the_limit_cm
int(speed_kmh * 1000 * reaction_tenths_of_a_second / 360) => reaction_distance_at_speed_cm
int(limit_kmh * limit_kmh * 10000000 / (259200 * braking_tenths_of_a_m_per_s2)) => braking_distance_at_the_limit_cm
int(speed_kmh * speed_kmh * 10000000 / (259200 * braking_tenths_of_a_m_per_s2)) => braking_distance_at_speed_cm
reaction_distance_at_the_limit_cm + braking_distance_at_the_limit_cm => stop_at_the_limit_cm
reaction_distance_at_speed_cm + braking_distance_at_speed_cm => stop_at_speed_cm
stop_at_the_limit_cm - reaction_distance_at_speed_cm => braking_done_before_the_crate_cm
int(braking_done_before_the_crate_cm * 259200 * braking_tenths_of_a_m_per_s2 / 10000000) => speed_squared_taken_away
speed_kmh * speed_kmh - speed_squared_taken_away => speed_squared_at_the_crate
43 => speed_at_the_crate_kmh
speed_at_the_crate_kmh * speed_at_the_crate_kmh => square_of_43
(speed_at_the_crate_kmh + 1) * (speed_at_the_crate_kmh + 1) => square_of_44
int(speed_squared_at_the_crate * 1000 / (speed_kmh * speed_kmh)) => energy_left_at_the_crate_per_mille
int((speed_kmh - limit_kmh) * 100 / limit_kmh) => faster_by_percent
int((stop_at_speed_cm - stop_at_the_limit_cm) * 100 / stop_at_the_limit_cm) => stopping_distance_longer_by_percent

"limit                           : " + str(limit_kmh) + " km/h" ^0
"the faster car                  : " + str(speed_kmh) + " km/h, " + str(faster_by_percent) + " percent over" ^0
"reaction                        : " + str(reaction_tenths_of_a_second) + " tenths of a second; braking " + str(braking_tenths_of_a_m_per_s2) + " tenths of a m/s2" ^0
"" ^0
"at the limit                    : reaction " + str(reaction_distance_at_the_limit_cm) + " cm, braking " + str(braking_distance_at_the_limit_cm) + " cm, stops in " + str(stop_at_the_limit_cm) + " cm" ^0
"at " + str(speed_kmh) + "                           : reaction " + str(reaction_distance_at_speed_cm) + " cm, braking " + str(braking_distance_at_speed_cm) + " cm, stops in " + str(stop_at_speed_cm) + " cm" ^0
"stopping distance longer by     : " + str(stopping_distance_longer_by_percent) + " percent" ^0
"" ^0
"the crate, " + str(stop_at_the_limit_cm) + " cm ahead          : the car at " + str(speed_kmh) + " has braked " + str(braking_done_before_the_crate_cm) + " cm" ^0
"speed squared left              : " + str(speed_squared_at_the_crate) + ", between " + str(square_of_43) + " and " + str(square_of_44) ^0
"speed at the crate              : " + str(speed_at_the_crate_kmh) + " km/h" ^0
"energy carried into the crate   : " + str(energy_left_at_the_crate_per_mille) + " per mille of what it had" ^0
"" ^0

# ---- what the driver verified ----

"the only-a-fifth reasoning" ^0
"  speed : " + str(speed_kmh) + ", exactly a fifth over " + str(limit_kmh) ^0
"  reaction : the same " + str(reaction_tenths_of_a_second) + " tenths of a second" ^0
"  brakes and road : the same" ^0
"  intent : keep a safe margin" ^0
"  facts wrong : 0" ^0
"  verdict : A FIFTH FASTER NEEDS ABOUT A FIFTH MORE ROAD" ^0
"" ^0
"  keeping reaction, brakes and road the same is the part done" ^0
"  right here, and it is why the two cars differ in exactly one" ^0
"  thing, the speed" ^0
"" ^0

# ---- where the extra speed goes ----

"two parts of a stop" ^0
"  the reaction : spent at full speed, so it grows with the speed," ^0
"    " + str(reaction_distance_at_the_limit_cm) + " cm at " + str(limit_kmh) + " and " + str(reaction_distance_at_speed_cm) + " at " + str(speed_kmh) ^0
"  the braking : takes away the square of the speed, so it grows" ^0
"    with the square, " + str(braking_distance_at_the_limit_cm) + " cm against " + str(braking_distance_at_speed_cm) ^0
"  at the crate : the car at " + str(speed_kmh) + " is only " + str(braking_done_before_the_crate_cm) + " cm into its braking," ^0
"    which has taken " + str(speed_squared_taken_away) + " off its " + str(speed_kmh * speed_kmh) + " of speed squared" ^0
"  what is left : " + str(speed_at_the_crate_kmh) + " km/h, most of the speed, because the" ^0
"    first metres of braking take the least of it" ^0
"" ^0

# ---- what the driver got ----

"the crate" ^0
"  believed : a stop a fifth further on, a small margin used" ^0
"  actual : " + str(speed_at_the_crate_kmh) + " km/h at the point where the other car stood still" ^0
"  was the arithmetic wrong : no; " + str(speed_kmh) + " is a fifth over " + str(limit_kmh) ^0
"  does a fifth more speed use a fifth more road : no; it uses" ^0
"    " + str(stopping_distance_longer_by_percent) + " percent more, and arrives with " + str(energy_left_at_the_crate_per_mille) + " per mille of its energy" ^0
"" ^0

# ---- null control ----

# The same stop computed from its two parts instead of scaled by the speed.
4152 => nc_stop_scaled_by_the_speed_cm
4484 => nc_stop_computed_from_reaction_and_braking_cm
332 => nc_cm_the_square_adds

"null control - compute the stop, do not scale it" ^0
"  stop, scaled by the speed : " + str(nc_stop_scaled_by_the_speed_cm) + " cm" ^0
"  stop, from reaction and braking : " + str(nc_stop_computed_from_reaction_and_braking_cm) + " cm" ^0
"  cm the square adds : " + str(nc_cm_the_square_adds) ^0
"  no car and no road changed; the braking part was allowed to" ^0
"  grow with the square it follows" ^0
"" ^0

# ---- the rule ----

"what driving a fifth over with the same brakes guarantees" ^0
"  reaction, brakes and road as good as at the limit : exactly" ^0
"  a stop about a fifth further on : not addressed; the reaction" ^0
"    is spent at the higher speed and braking takes away speed" ^0
"    squared, so where the car at " + str(limit_kmh) + " stops, the car at " + str(speed_kmh) + " is still" ^0
"    doing " + str(speed_at_the_crate_kmh) + " km/h with " + str(energy_left_at_the_crate_per_mille) + " per mille of its energy" ^0
"" ^0

"a margin measured in speed is spent in distance, and distance is charged at" ^0
"the square; ten over is not a tenth of anything by the time the road runs out" ^0
"" ^0

"Sixty is a fifth over fifty - exactly. But the reaction is spent at sixty and" ^0
"braking removes the square of the speed, so the car at " + str(speed_kmh) + " needs " + str(stop_at_speed_cm) + " cm to" ^0
"stop, and at the " + str(stop_at_the_limit_cm) + " cm where the car at " + str(limit_kmh) + " stood still it is doing " + str(speed_at_the_crate_kmh) ^0
"km/h, until the stop is computed from its parts instead of scaled by the speed." ^0
```

## Python (deterministic transpilation)

```python
limit_kmh = 50
speed_kmh = 60
reaction_tenths_of_a_second = 15
braking_tenths_of_a_m_per_s2 = 70
reaction_distance_at_the_limit_cm = int(limit_kmh * 1000 * reaction_tenths_of_a_second / 360)
reaction_distance_at_speed_cm = int(speed_kmh * 1000 * reaction_tenths_of_a_second / 360)
braking_distance_at_the_limit_cm = int(limit_kmh * limit_kmh * 10000000 / (259200 * braking_tenths_of_a_m_per_s2))
braking_distance_at_speed_cm = int(speed_kmh * speed_kmh * 10000000 / (259200 * braking_tenths_of_a_m_per_s2))
stop_at_the_limit_cm = reaction_distance_at_the_limit_cm + braking_distance_at_the_limit_cm
stop_at_speed_cm = reaction_distance_at_speed_cm + braking_distance_at_speed_cm
braking_done_before_the_crate_cm = stop_at_the_limit_cm - reaction_distance_at_speed_cm
speed_squared_taken_away = int(braking_done_before_the_crate_cm * 259200 * braking_tenths_of_a_m_per_s2 / 10000000)
speed_squared_at_the_crate = speed_kmh * speed_kmh - speed_squared_taken_away
speed_at_the_crate_kmh = 43
square_of_43 = speed_at_the_crate_kmh * speed_at_the_crate_kmh
square_of_44 = (speed_at_the_crate_kmh + 1) * (speed_at_the_crate_kmh + 1)
energy_left_at_the_crate_per_mille = int(speed_squared_at_the_crate * 1000 / (speed_kmh * speed_kmh))
faster_by_percent = int((speed_kmh - limit_kmh) * 100 / limit_kmh)
stopping_distance_longer_by_percent = int((stop_at_speed_cm - stop_at_the_limit_cm) * 100 / stop_at_the_limit_cm)
print("limit                           : " + str(limit_kmh) + " km/h")
print("the faster car                  : " + str(speed_kmh) + " km/h, " + str(faster_by_percent) + " percent over")
print("reaction                        : " + str(reaction_tenths_of_a_second) + " tenths of a second; braking " + str(braking_tenths_of_a_m_per_s2) + " tenths of a m/s2")
print("")
print("at the limit                    : reaction " + str(reaction_distance_at_the_limit_cm) + " cm, braking " + str(braking_distance_at_the_limit_cm) + " cm, stops in " + str(stop_at_the_limit_cm) + " cm")
print("at " + str(speed_kmh) + "                           : reaction " + str(reaction_distance_at_speed_cm) + " cm, braking " + str(braking_distance_at_speed_cm) + " cm, stops in " + str(stop_at_speed_cm) + " cm")
print("stopping distance longer by     : " + str(stopping_distance_longer_by_percent) + " percent")
print("")
print("the crate, " + str(stop_at_the_limit_cm) + " cm ahead          : the car at " + str(speed_kmh) + " has braked " + str(braking_done_before_the_crate_cm) + " cm")
print("speed squared left              : " + str(speed_squared_at_the_crate) + ", between " + str(square_of_43) + " and " + str(square_of_44))
print("speed at the crate              : " + str(speed_at_the_crate_kmh) + " km/h")
print("energy carried into the crate   : " + str(energy_left_at_the_crate_per_mille) + " per mille of what it had")
print("")
print("the only-a-fifth reasoning")
print("  speed : " + str(speed_kmh) + ", exactly a fifth over " + str(limit_kmh))
print("  reaction : the same " + str(reaction_tenths_of_a_second) + " tenths of a second")
print("  brakes and road : the same")
print("  intent : keep a safe margin")
print("  facts wrong : 0")
print("  verdict : A FIFTH FASTER NEEDS ABOUT A FIFTH MORE ROAD")
print("")
print("  keeping reaction, brakes and road the same is the part done")
print("  right here, and it is why the two cars differ in exactly one")
print("  thing, the speed")
print("")
print("two parts of a stop")
print("  the reaction : spent at full speed, so it grows with the speed,")
print("    " + str(reaction_distance_at_the_limit_cm) + " cm at " + str(limit_kmh) + " and " + str(reaction_distance_at_speed_cm) + " at " + str(speed_kmh))
print("  the braking : takes away the square of the speed, so it grows")
print("    with the square, " + str(braking_distance_at_the_limit_cm) + " cm against " + str(braking_distance_at_speed_cm))
print("  at the crate : the car at " + str(speed_kmh) + " is only " + str(braking_done_before_the_crate_cm) + " cm into its braking,")
print("    which has taken " + str(speed_squared_taken_away) + " off its " + str(speed_kmh * speed_kmh) + " of speed squared")
print("  what is left : " + str(speed_at_the_crate_kmh) + " km/h, most of the speed, because the")
print("    first metres of braking take the least of it")
print("")
print("the crate")
print("  believed : a stop a fifth further on, a small margin used")
print("  actual : " + str(speed_at_the_crate_kmh) + " km/h at the point where the other car stood still")
print("  was the arithmetic wrong : no; " + str(speed_kmh) + " is a fifth over " + str(limit_kmh))
print("  does a fifth more speed use a fifth more road : no; it uses")
print("    " + str(stopping_distance_longer_by_percent) + " percent more, and arrives with " + str(energy_left_at_the_crate_per_mille) + " per mille of its energy")
print("")
nc_stop_scaled_by_the_speed_cm = 4152
nc_stop_computed_from_reaction_and_braking_cm = 4484
nc_cm_the_square_adds = 332
print("null control - compute the stop, do not scale it")
print("  stop, scaled by the speed : " + str(nc_stop_scaled_by_the_speed_cm) + " cm")
print("  stop, from reaction and braking : " + str(nc_stop_computed_from_reaction_and_braking_cm) + " cm")
print("  cm the square adds : " + str(nc_cm_the_square_adds))
print("  no car and no road changed; the braking part was allowed to")
print("  grow with the square it follows")
print("")
print("what driving a fifth over with the same brakes guarantees")
print("  reaction, brakes and road as good as at the limit : exactly")
print("  a stop about a fifth further on : not addressed; the reaction")
print("    is spent at the higher speed and braking takes away speed")
print("    squared, so where the car at " + str(limit_kmh) + " stops, the car at " + str(speed_kmh) + " is still")
print("    doing " + str(speed_at_the_crate_kmh) + " km/h with " + str(energy_left_at_the_crate_per_mille) + " per mille of its energy")
print("")
print("a margin measured in speed is spent in distance, and distance is charged at")
print("the square; ten over is not a tenth of anything by the time the road runs out")
print("")
print("Sixty is a fifth over fifty - exactly. But the reaction is spent at sixty and")
print("braking removes the square of the speed, so the car at " + str(speed_kmh) + " needs " + str(stop_at_speed_cm) + " cm to")
print("stop, and at the " + str(stop_at_the_limit_cm) + " cm where the car at " + str(limit_kmh) + " stood still it is doing " + str(speed_at_the_crate_kmh))
print("km/h, until the stop is computed from its parts instead of scaled by the speed.")
```

## stdout (executed)

```text
limit                           : 50 km/h
the faster car                  : 60 km/h, 20 percent over
reaction                        : 15 tenths of a second; braking 70 tenths of a m/s2

at the limit                    : reaction 2083 cm, braking 1377 cm, stops in 3460 cm
at 60                           : reaction 2500 cm, braking 1984 cm, stops in 4484 cm
stopping distance longer by     : 29 percent

the crate, 3460 cm ahead          : the car at 60 has braked 960 cm
speed squared left              : 1859, between 1849 and 1936
speed at the crate              : 43 km/h
energy carried into the crate   : 516 per mille of what it had

the only-a-fifth reasoning
  speed : 60, exactly a fifth over 50
  reaction : the same 15 tenths of a second
  brakes and road : the same
  intent : keep a safe margin
  facts wrong : 0
  verdict : A FIFTH FASTER NEEDS ABOUT A FIFTH MORE ROAD

  keeping reaction, brakes and road the same is the part done
  right here, and it is why the two cars differ in exactly one
  thing, the speed

two parts of a stop
  the reaction : spent at full speed, so it grows with the speed,
    2083 cm at 50 and 2500 at 60
  the braking : takes away the square of the speed, so it grows
    with the square, 1377 cm against 1984
  at the crate : the car at 60 is only 960 cm into its braking,
    which has taken 1741 off its 3600 of speed squared
  what is left : 43 km/h, most of the speed, because the
    first metres of braking take the least of it

the crate
  believed : a stop a fifth further on, a small margin used
  actual : 43 km/h at the point where the other car stood still
  was the arithmetic wrong : no; 60 is a fifth over 50
  does a fifth more speed use a fifth more road : no; it uses
    29 percent more, and arrives with 516 per mille of its energy

null control - compute the stop, do not scale it
  stop, scaled by the speed : 4152 cm
  stop, from reaction and braking : 4484 cm
  cm the square adds : 332
  no car and no road changed; the braking part was allowed to
  grow with the square it follows

what driving a fifth over with the same brakes guarantees
  reaction, brakes and road as good as at the limit : exactly
  a stop about a fifth further on : not addressed; the reaction
    is spent at the higher speed and braking takes away speed
    squared, so where the car at 50 stops, the car at 60 is still
    doing 43 km/h with 516 per mille of its energy

a margin measured in speed is spent in distance, and distance is charged at
the square; ten over is not a tenth of anything by the time the road runs out

Sixty is a fifth over fifty - exactly. But the reaction is spent at sixty and
braking removes the square of the speed, so the car at 60 needs 4484 cm to
stop, and at the 3460 cm where the car at 50 stood still it is doing 43
km/h, until the stop is computed from its parts instead of scaled by the speed.
```

## Round-trip

`ok: true` — round-trip fixpoint reached (python1 == python2)

## Trace event types

eml:run:start · eml:assign · eml:output · eml:run:done
