Case 967
The second batch went into the same pan and steamed
the_second_batch_went_into_the_same_pan_and_steamed.eml - A cook doubles a stir-fry for guests, puts the whole six hundred grams into the same pan on the same burner that seared three hundred perfectly, and gets a pan of grey, wet vegetables. What the same burner can do to twice the food is computed below.
ok: true — round-trip fixpoint reached (python1 == python2)updated 2026-09-22
EML
eml# Self-authored for the EML case corpus (no external origin). A cook doubles a
# stir-fry for guests, puts the whole six hundred grams into the same pan on
# the same burner that seared three hundred perfectly, and gets a pan of grey,
# wet vegetables. What the same burner can do to twice the food is computed
# below.
#
# The reasoning is careful. The pan is the same; the burner is the same, on
# full; the recipe scales linearly in every ingredient; searing worked last
# time; and the intent was exactly 'the same dish, twice as much'.
#
# The burner delivers a fixed power, and searing needs the food's surface to
# climb past the boiling point quickly, before the water it releases can pool;
# twice the food on the same power heats at half the rate per gram, taking
# seventy seconds to do what took thirty-five, and in that time the water
# stays, the surface sits at a hundred, and the dish steams.
2000 => burner_power_w
300 => batch_that_seared_g
600 => doubled_batch_g
39 => specific_heat_of_vegetables_tenths_of_a_j_per_g_k
60 => surface_rise_needed_to_sear_k
int(batch_that_seared_g * specific_heat_of_vegetables_tenths_of_a_j_per_g_k * surface_rise_needed_to_sear_k / 10) => heat_to_bring_the_small_batch_up_j
int(doubled_batch_g * specific_heat_of_vegetables_tenths_of_a_j_per_g_k * surface_rise_needed_to_sear_k / 10) => heat_to_bring_the_doubled_batch_up_j
int(heat_to_bring_the_small_batch_up_j * 10 / burner_power_w) => seconds_to_bring_the_small_batch_up_tenths
int(heat_to_bring_the_doubled_batch_up_j * 10 / burner_power_w) => seconds_to_bring_the_doubled_batch_up_tenths
int(burner_power_w * 100 / batch_that_seared_g) => watts_per_gram_small_batch_hundredths
int(burner_power_w * 100 / doubled_batch_g) => watts_per_gram_doubled_batch_hundredths
seconds_to_bring_the_doubled_batch_up_tenths - seconds_to_bring_the_small_batch_up_tenths => extra_seconds_at_the_boil_tenths
int(seconds_to_bring_the_doubled_batch_up_tenths * 100 / seconds_to_bring_the_small_batch_up_tenths) => time_as_a_share_of_the_first_batch_per_hundred
int(doubled_batch_g / batch_that_seared_g) => batches_the_same_pan_should_have_taken
"burner : " + str(burner_power_w) + " W, the same both times" ^0
"batch that seared : " + str(batch_that_seared_g) + " g, " + str(watts_per_gram_small_batch_hundredths) + " hundredths of a watt per gram" ^0
"doubled batch : " + str(doubled_batch_g) + " g, " + str(watts_per_gram_doubled_batch_hundredths) + " hundredths of a watt per gram, half" ^0
"" ^0
"heat to bring the surface up : " + str(heat_to_bring_the_small_batch_up_j) + " J for the small batch, " + str(heat_to_bring_the_doubled_batch_up_j) + " J for the doubled" ^0
"time to get there : " + str(seconds_to_bring_the_small_batch_up_tenths) + " tenths of a second, then " + str(seconds_to_bring_the_doubled_batch_up_tenths) ^0
"the doubled batch takes : " + str(time_as_a_share_of_the_first_batch_per_hundred) + " per hundred of the time, " + str(extra_seconds_at_the_boil_tenths) + " tenths of a second longer at the boil" ^0
"batches the pan should have had : " + str(batches_the_same_pan_should_have_taken) ^0
"" ^0
# ---- what the cook verified ----
"the same-everything reasoning" ^0
" pan : the same" ^0
" burner : the same, on full" ^0
" recipe : every ingredient doubled" ^0
" last time : seared perfectly" ^0
" intent : the same dish, twice as much" ^0
" facts wrong : 0" ^0
" verdict : DOUBLE EVERYTHING, SAME RESULT" ^0
"" ^0
" doubling every ingredient in proportion is the part done" ^0
" right here, and it is why the seasoning of the wet grey" ^0
" vegetables was exactly right" ^0
"" ^0
# ---- what the same burner can do to twice the food ----
"power is a rate and searing is a race" ^0
" what the burner gives : " + str(burner_power_w) + " W, no more for a fuller pan" ^0
" what searing needs : the surface past the boil fast, before" ^0
" released water pools and holds it at a hundred" ^0
" small batch : " + str(watts_per_gram_small_batch_hundredths) + " hundredths of a watt per gram, up in " + str(seconds_to_bring_the_small_batch_up_tenths) + " tenths of a second" ^0
" doubled batch : " + str(watts_per_gram_doubled_batch_hundredths) + " hundredths per gram, up in " + str(seconds_to_bring_the_doubled_batch_up_tenths) + " tenths, and the" ^0
" extra " + str(extra_seconds_at_the_boil_tenths) + " tenths are spent boiling in the food's own water" ^0
" what doubled with the recipe : the heat needed" ^0
" what did not double : the heat available per second" ^0
"" ^0
# ---- what the cook got ----
"the pan" ^0
" believed : the same dish, twice as much" ^0
" actual : the same ingredients, steamed instead of seared" ^0
" is the burner weaker : no; it gave " + str(burner_power_w) + " W both times" ^0
" does the dish scale with the ingredients : the seasoning does;" ^0
" the sear is a rate, and the rate per gram halved" ^0
"" ^0
# ---- null control ----
# The same six hundred grams cooked as two batches of three hundred instead of
# one batch of six hundred.
702 => nc_tenths_of_a_second_to_come_up_in_one_batch
351 => nc_tenths_of_a_second_to_come_up_per_batch_in_two
351 => nc_tenths_of_a_second_at_the_boil_the_second_pan_load_avoids
"null control - cook it in two batches" ^0
" time to come up, one batch : " + str(nc_tenths_of_a_second_to_come_up_in_one_batch) + " tenths of a second" ^0
" time to come up, each of two batches : " + str(nc_tenths_of_a_second_to_come_up_per_batch_in_two) + " tenths of a second" ^0
" time at the boil the split avoids : " + str(nc_tenths_of_a_second_at_the_boil_the_second_pan_load_avoids) + " tenths of a second" ^0
" no pan and no burner changed; the power per gram was" ^0
" restored by halving the grams in the pan" ^0
"" ^0
# ---- the rule ----
"what doubling every ingredient guarantees" ^0
" the proportions of the dish : exactly" ^0
" the sear of the dish : not addressed; the burner's " + str(burner_power_w) + " W did not" ^0
" double, so each gram heats at half the rate, " + str(seconds_to_bring_the_doubled_batch_up_tenths) + " tenths of a" ^0
" second to come up instead of " + str(seconds_to_bring_the_small_batch_up_tenths) + ", and the surface boils where" ^0
" it should have browned" ^0
"" ^0
"a recipe scales what goes in the pan, not what comes out of the burner; the" ^0
"one thing you cannot double by writing a bigger number is the fire, and the" ^0
"sear was the fire's work" ^0
"" ^0
"Every ingredient doubled - the proportions are exact. But the burner is still" ^0
"" + str(burner_power_w) + " W, so " + str(doubled_batch_g) + " g heats at " + str(watts_per_gram_doubled_batch_hundredths) + " hundredths of a watt per gram instead of " + str(watts_per_gram_small_batch_hundredths) + "," ^0
"" + str(seconds_to_bring_the_doubled_batch_up_tenths) + " tenths of a second to come up instead of " + str(seconds_to_bring_the_small_batch_up_tenths) + ", and the surface sits at the boil" ^0
"in its own water, until the food is cooked in " + str(batches_the_same_pan_should_have_taken) + " batches so the fire per gram is what it was." ^0Python (deterministic transpilation)
pythonburner_power_w = 2000
batch_that_seared_g = 300
doubled_batch_g = 600
specific_heat_of_vegetables_tenths_of_a_j_per_g_k = 39
surface_rise_needed_to_sear_k = 60
heat_to_bring_the_small_batch_up_j = int(batch_that_seared_g * specific_heat_of_vegetables_tenths_of_a_j_per_g_k * surface_rise_needed_to_sear_k / 10)
heat_to_bring_the_doubled_batch_up_j = int(doubled_batch_g * specific_heat_of_vegetables_tenths_of_a_j_per_g_k * surface_rise_needed_to_sear_k / 10)
seconds_to_bring_the_small_batch_up_tenths = int(heat_to_bring_the_small_batch_up_j * 10 / burner_power_w)
seconds_to_bring_the_doubled_batch_up_tenths = int(heat_to_bring_the_doubled_batch_up_j * 10 / burner_power_w)
watts_per_gram_small_batch_hundredths = int(burner_power_w * 100 / batch_that_seared_g)
watts_per_gram_doubled_batch_hundredths = int(burner_power_w * 100 / doubled_batch_g)
extra_seconds_at_the_boil_tenths = seconds_to_bring_the_doubled_batch_up_tenths - seconds_to_bring_the_small_batch_up_tenths
time_as_a_share_of_the_first_batch_per_hundred = int(seconds_to_bring_the_doubled_batch_up_tenths * 100 / seconds_to_bring_the_small_batch_up_tenths)
batches_the_same_pan_should_have_taken = int(doubled_batch_g / batch_that_seared_g)
print("burner : " + str(burner_power_w) + " W, the same both times")
print("batch that seared : " + str(batch_that_seared_g) + " g, " + str(watts_per_gram_small_batch_hundredths) + " hundredths of a watt per gram")
print("doubled batch : " + str(doubled_batch_g) + " g, " + str(watts_per_gram_doubled_batch_hundredths) + " hundredths of a watt per gram, half")
print("")
print("heat to bring the surface up : " + str(heat_to_bring_the_small_batch_up_j) + " J for the small batch, " + str(heat_to_bring_the_doubled_batch_up_j) + " J for the doubled")
print("time to get there : " + str(seconds_to_bring_the_small_batch_up_tenths) + " tenths of a second, then " + str(seconds_to_bring_the_doubled_batch_up_tenths))
print("the doubled batch takes : " + str(time_as_a_share_of_the_first_batch_per_hundred) + " per hundred of the time, " + str(extra_seconds_at_the_boil_tenths) + " tenths of a second longer at the boil")
print("batches the pan should have had : " + str(batches_the_same_pan_should_have_taken))
print("")
print("the same-everything reasoning")
print(" pan : the same")
print(" burner : the same, on full")
print(" recipe : every ingredient doubled")
print(" last time : seared perfectly")
print(" intent : the same dish, twice as much")
print(" facts wrong : 0")
print(" verdict : DOUBLE EVERYTHING, SAME RESULT")
print("")
print(" doubling every ingredient in proportion is the part done")
print(" right here, and it is why the seasoning of the wet grey")
print(" vegetables was exactly right")
print("")
print("power is a rate and searing is a race")
print(" what the burner gives : " + str(burner_power_w) + " W, no more for a fuller pan")
print(" what searing needs : the surface past the boil fast, before")
print(" released water pools and holds it at a hundred")
print(" small batch : " + str(watts_per_gram_small_batch_hundredths) + " hundredths of a watt per gram, up in " + str(seconds_to_bring_the_small_batch_up_tenths) + " tenths of a second")
print(" doubled batch : " + str(watts_per_gram_doubled_batch_hundredths) + " hundredths per gram, up in " + str(seconds_to_bring_the_doubled_batch_up_tenths) + " tenths, and the")
print(" extra " + str(extra_seconds_at_the_boil_tenths) + " tenths are spent boiling in the food's own water")
print(" what doubled with the recipe : the heat needed")
print(" what did not double : the heat available per second")
print("")
print("the pan")
print(" believed : the same dish, twice as much")
print(" actual : the same ingredients, steamed instead of seared")
print(" is the burner weaker : no; it gave " + str(burner_power_w) + " W both times")
print(" does the dish scale with the ingredients : the seasoning does;")
print(" the sear is a rate, and the rate per gram halved")
print("")
nc_tenths_of_a_second_to_come_up_in_one_batch = 702
nc_tenths_of_a_second_to_come_up_per_batch_in_two = 351
nc_tenths_of_a_second_at_the_boil_the_second_pan_load_avoids = 351
print("null control - cook it in two batches")
print(" time to come up, one batch : " + str(nc_tenths_of_a_second_to_come_up_in_one_batch) + " tenths of a second")
print(" time to come up, each of two batches : " + str(nc_tenths_of_a_second_to_come_up_per_batch_in_two) + " tenths of a second")
print(" time at the boil the split avoids : " + str(nc_tenths_of_a_second_at_the_boil_the_second_pan_load_avoids) + " tenths of a second")
print(" no pan and no burner changed; the power per gram was")
print(" restored by halving the grams in the pan")
print("")
print("what doubling every ingredient guarantees")
print(" the proportions of the dish : exactly")
print(" the sear of the dish : not addressed; the burner's " + str(burner_power_w) + " W did not")
print(" double, so each gram heats at half the rate, " + str(seconds_to_bring_the_doubled_batch_up_tenths) + " tenths of a")
print(" second to come up instead of " + str(seconds_to_bring_the_small_batch_up_tenths) + ", and the surface boils where")
print(" it should have browned")
print("")
print("a recipe scales what goes in the pan, not what comes out of the burner; the")
print("one thing you cannot double by writing a bigger number is the fire, and the")
print("sear was the fire's work")
print("")
print("Every ingredient doubled - the proportions are exact. But the burner is still")
print("" + str(burner_power_w) + " W, so " + str(doubled_batch_g) + " g heats at " + str(watts_per_gram_doubled_batch_hundredths) + " hundredths of a watt per gram instead of " + str(watts_per_gram_small_batch_hundredths) + ",")
print("" + str(seconds_to_bring_the_doubled_batch_up_tenths) + " tenths of a second to come up instead of " + str(seconds_to_bring_the_small_batch_up_tenths) + ", and the surface sits at the boil")
print("in its own water, until the food is cooked in " + str(batches_the_same_pan_should_have_taken) + " batches so the fire per gram is what it was.")stdout (executed)
textburner : 2000 W, the same both times
batch that seared : 300 g, 666 hundredths of a watt per gram
doubled batch : 600 g, 333 hundredths of a watt per gram, half
heat to bring the surface up : 70200 J for the small batch, 140400 J for the doubled
time to get there : 351 tenths of a second, then 702
the doubled batch takes : 200 per hundred of the time, 351 tenths of a second longer at the boil
batches the pan should have had : 2
the same-everything reasoning
pan : the same
burner : the same, on full
recipe : every ingredient doubled
last time : seared perfectly
intent : the same dish, twice as much
facts wrong : 0
verdict : DOUBLE EVERYTHING, SAME RESULT
doubling every ingredient in proportion is the part done
right here, and it is why the seasoning of the wet grey
vegetables was exactly right
power is a rate and searing is a race
what the burner gives : 2000 W, no more for a fuller pan
what searing needs : the surface past the boil fast, before
released water pools and holds it at a hundred
small batch : 666 hundredths of a watt per gram, up in 351 tenths of a second
doubled batch : 333 hundredths per gram, up in 702 tenths, and the
extra 351 tenths are spent boiling in the food's own water
what doubled with the recipe : the heat needed
what did not double : the heat available per second
the pan
believed : the same dish, twice as much
actual : the same ingredients, steamed instead of seared
is the burner weaker : no; it gave 2000 W both times
does the dish scale with the ingredients : the seasoning does;
the sear is a rate, and the rate per gram halved
null control - cook it in two batches
time to come up, one batch : 702 tenths of a second
time to come up, each of two batches : 351 tenths of a second
time at the boil the split avoids : 351 tenths of a second
no pan and no burner changed; the power per gram was
restored by halving the grams in the pan
what doubling every ingredient guarantees
the proportions of the dish : exactly
the sear of the dish : not addressed; the burner's 2000 W did not
double, so each gram heats at half the rate, 702 tenths of a
second to come up instead of 351, and the surface boils where
it should have browned
a recipe scales what goes in the pan, not what comes out of the burner; the
one thing you cannot double by writing a bigger number is the fire, and the
sear was the fire's work
Every ingredient doubled - the proportions are exact. But the burner is still
2000 W, so 600 g heats at 333 hundredths of a watt per gram instead of 666,
702 tenths of a second to come up instead of 351, and the surface sits at the boil
in its own water, until the food is cooked in 2 batches so the fire per gram is what it was.Trace event types
eml:run:starteml:assigneml:outputeml:run:done