Case 958
Half the voltage was a quarter of the heat
half_the_voltage_was_a_quarter_of_the_heat.eml - A 2000-watt heater built for a 240-volt country is plugged into a 120-volt supply with a plug adapter, the traveller reasons that half the voltage means half the heat and a slow but working heater, and the room barely warms. What half the voltage does to a fixed resistance 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 2000-watt
# heater built for a 240-volt country is plugged into a 120-volt supply with a
# plug adapter, the traveller reasons that half the voltage means half the
# heat and a slow but working heater, and the room barely warms. What half the
# voltage does to a fixed resistance is computed below.
#
# The reasoning is careful. The voltages are right; the heater is a plain
# resistive element, exactly the kind that tolerates a lower voltage; half the
# voltage genuinely is half the current; and the intent was exactly 'half the
# heat, twice the time'.
#
# Power in a resistor is voltage times current, and halving the voltage halves
# the current too, so the power falls to a quarter - 500 watts, not 1000 - and
# the transformer that would restore it draws twice the current from the
# 120-volt side, past what a 15-amp circuit allows.
240 => rated_volts
2000 => rated_watts
120 => supply_volts
150 => circuit_breaker_tenths_of_an_amp
int(rated_volts * rated_volts * 10 / rated_watts) => element_resistance_tenths_of_an_ohm
int(rated_watts * supply_volts * supply_volts / (rated_volts * rated_volts)) => watts_at_half_voltage
int(rated_watts / 2) => watts_the_traveller_expected
int(watts_at_half_voltage * 10000 / rated_watts) => power_as_a_share_of_rated_per_myriad
int(rated_watts * 10 / rated_volts) => rated_current_tenths_of_an_amp
int(watts_at_half_voltage * 10 / supply_volts) => current_at_half_voltage_tenths_of_an_amp
int(rated_watts / watts_at_half_voltage) => times_longer_to_deliver_the_same_heat
int(rated_watts * 10 / supply_volts) => transformer_input_current_tenths_of_an_amp
transformer_input_current_tenths_of_an_amp - circuit_breaker_tenths_of_an_amp => transformer_current_over_the_breaker_tenths
"heater : " + str(rated_watts) + " W at " + str(rated_volts) + " V, element " + str(element_resistance_tenths_of_an_ohm) + " tenths of an ohm" ^0
"supply : " + str(supply_volts) + " V, half" ^0
"" ^0
"current at " + str(rated_volts) + " V : " + str(rated_current_tenths_of_an_amp) + " tenths of an amp" ^0
"current at " + str(supply_volts) + " V : " + str(current_at_half_voltage_tenths_of_an_amp) + " tenths of an amp, half" ^0
"power at " + str(supply_volts) + " V : " + str(watts_at_half_voltage) + " W, " + str(power_as_a_share_of_rated_per_myriad) + " per ten thousand of rated" ^0
"power the traveller expected : " + str(watts_the_traveller_expected) + " W" ^0
"time for the same heat : " + str(times_longer_to_deliver_the_same_heat) + " times as long, not twice" ^0
"" ^0
"a step-up transformer instead : full " + str(rated_watts) + " W, drawn from the " + str(supply_volts) + " V side at " + str(transformer_input_current_tenths_of_an_amp) + " tenths of an amp" ^0
"circuit breaker : " + str(circuit_breaker_tenths_of_an_amp) + " tenths of an amp, exceeded by " + str(transformer_current_over_the_breaker_tenths) ^0
"" ^0
# ---- what the traveller verified ----
"the half-and-half reasoning" ^0
" voltages : " + str(rated_volts) + " and " + str(supply_volts) + ", right" ^0
" element : plain resistance, tolerant of low voltage" ^0
" current : half the voltage, half the current" ^0
" intent : half the heat, twice the time" ^0
" facts wrong : 0" ^0
" verdict : HALF THE VOLTAGE IS HALF THE HEAT" ^0
"" ^0
" knowing that a resistive element takes half the current at" ^0
" half the voltage is the part done right here, and it is why" ^0
" " + str(current_at_half_voltage_tenths_of_an_amp) + " tenths of an amp is exactly right" ^0
"" ^0
# ---- what half the voltage does to a resistor ----
"power is voltage times current" ^0
" at " + str(rated_volts) + " V : " + str(rated_volts) + " times " + str(rated_current_tenths_of_an_amp) + " tenths, " + str(rated_watts) + " W" ^0
" at " + str(supply_volts) + " V : the voltage halves AND the current halves," ^0
" " + str(supply_volts) + " times " + str(current_at_half_voltage_tenths_of_an_amp) + " tenths, " + str(watts_at_half_voltage) + " W" ^0
" what halved once in the reasoning : one factor" ^0
" what halves in the element : both factors, a quarter" ^0
" what a transformer does : restores the voltage by doubling" ^0
" the current it pulls, " + str(transformer_input_current_tenths_of_an_amp) + " tenths from a " + str(circuit_breaker_tenths_of_an_amp) + "-tenth circuit" ^0
"" ^0
# ---- what the traveller got ----
"the room" ^0
" believed : " + str(watts_the_traveller_expected) + " W, warm in twice the time" ^0
" actual : " + str(watts_at_half_voltage) + " W, warm in " + str(times_longer_to_deliver_the_same_heat) + " times the time" ^0
" is the element damaged : no; it runs cool and happy" ^0
" is half the voltage half the heat : no; it is a quarter, and" ^0
" the transformer that fixes it trips the breaker" ^0
"" ^0
# ---- null control ----
# The same heater with its power computed from the voltage squared instead of
# from the voltage alone.
1000 => nc_power_read_as_half_of_rated_watts
500 => nc_power_read_as_voltage_squared_watts
500 => nc_watts_the_second_halving_removes
"null control - square the voltage" ^0
" power, read as half of rated : " + str(nc_power_read_as_half_of_rated_watts) + " W" ^0
" power, read from voltage squared : " + str(nc_power_read_as_voltage_squared_watts) + " W" ^0
" watts the second halving removes : " + str(nc_watts_the_second_halving_removes) ^0
" no heater and no supply changed; the current was allowed" ^0
" to fall along with the voltage it depends on" ^0
"" ^0
# ---- the rule ----
"what a resistive heater on half its voltage guarantees" ^0
" it draws half the current : exactly, " + str(current_at_half_voltage_tenths_of_an_amp) + " tenths of an amp" ^0
" it gives half the heat : not addressed; heat is voltage times" ^0
" current and both halved, so " + str(watts_at_half_voltage) + " W, a quarter, and the" ^0
" transformer that restores " + str(rated_watts) + " W pulls " + str(transformer_input_current_tenths_of_an_amp) + " tenths through a" ^0
" " + str(circuit_breaker_tenths_of_an_amp) + "-tenth breaker" ^0
"" ^0
"halve one thing that is really a product of two and you have halved it" ^0
"twice; the voltage you can read on the wall, the current you cannot, and" ^0
"the heat is the pair of them" ^0
"" ^0
"Half the voltage is half the current - that step is right. But the heat is" ^0
"their product, so " + str(supply_volts) + " V into a " + str(rated_watts) + "-W element is " + str(watts_at_half_voltage) + " W, a quarter, taking " + str(times_longer_to_deliver_the_same_heat) ^0
"times as long, and the transformer that gives the full " + str(rated_watts) + " back draws " + str(transformer_input_current_tenths_of_an_amp) + " tenths" ^0
"of an amp past a " + str(circuit_breaker_tenths_of_an_amp) + "-tenth breaker, until the heat is read as the product it is." ^0Python (deterministic transpilation)
pythonrated_volts = 240
rated_watts = 2000
supply_volts = 120
circuit_breaker_tenths_of_an_amp = 150
element_resistance_tenths_of_an_ohm = int(rated_volts * rated_volts * 10 / rated_watts)
watts_at_half_voltage = int(rated_watts * supply_volts * supply_volts / (rated_volts * rated_volts))
watts_the_traveller_expected = int(rated_watts / 2)
power_as_a_share_of_rated_per_myriad = int(watts_at_half_voltage * 10000 / rated_watts)
rated_current_tenths_of_an_amp = int(rated_watts * 10 / rated_volts)
current_at_half_voltage_tenths_of_an_amp = int(watts_at_half_voltage * 10 / supply_volts)
times_longer_to_deliver_the_same_heat = int(rated_watts / watts_at_half_voltage)
transformer_input_current_tenths_of_an_amp = int(rated_watts * 10 / supply_volts)
transformer_current_over_the_breaker_tenths = transformer_input_current_tenths_of_an_amp - circuit_breaker_tenths_of_an_amp
print("heater : " + str(rated_watts) + " W at " + str(rated_volts) + " V, element " + str(element_resistance_tenths_of_an_ohm) + " tenths of an ohm")
print("supply : " + str(supply_volts) + " V, half")
print("")
print("current at " + str(rated_volts) + " V : " + str(rated_current_tenths_of_an_amp) + " tenths of an amp")
print("current at " + str(supply_volts) + " V : " + str(current_at_half_voltage_tenths_of_an_amp) + " tenths of an amp, half")
print("power at " + str(supply_volts) + " V : " + str(watts_at_half_voltage) + " W, " + str(power_as_a_share_of_rated_per_myriad) + " per ten thousand of rated")
print("power the traveller expected : " + str(watts_the_traveller_expected) + " W")
print("time for the same heat : " + str(times_longer_to_deliver_the_same_heat) + " times as long, not twice")
print("")
print("a step-up transformer instead : full " + str(rated_watts) + " W, drawn from the " + str(supply_volts) + " V side at " + str(transformer_input_current_tenths_of_an_amp) + " tenths of an amp")
print("circuit breaker : " + str(circuit_breaker_tenths_of_an_amp) + " tenths of an amp, exceeded by " + str(transformer_current_over_the_breaker_tenths))
print("")
print("the half-and-half reasoning")
print(" voltages : " + str(rated_volts) + " and " + str(supply_volts) + ", right")
print(" element : plain resistance, tolerant of low voltage")
print(" current : half the voltage, half the current")
print(" intent : half the heat, twice the time")
print(" facts wrong : 0")
print(" verdict : HALF THE VOLTAGE IS HALF THE HEAT")
print("")
print(" knowing that a resistive element takes half the current at")
print(" half the voltage is the part done right here, and it is why")
print(" " + str(current_at_half_voltage_tenths_of_an_amp) + " tenths of an amp is exactly right")
print("")
print("power is voltage times current")
print(" at " + str(rated_volts) + " V : " + str(rated_volts) + " times " + str(rated_current_tenths_of_an_amp) + " tenths, " + str(rated_watts) + " W")
print(" at " + str(supply_volts) + " V : the voltage halves AND the current halves,")
print(" " + str(supply_volts) + " times " + str(current_at_half_voltage_tenths_of_an_amp) + " tenths, " + str(watts_at_half_voltage) + " W")
print(" what halved once in the reasoning : one factor")
print(" what halves in the element : both factors, a quarter")
print(" what a transformer does : restores the voltage by doubling")
print(" the current it pulls, " + str(transformer_input_current_tenths_of_an_amp) + " tenths from a " + str(circuit_breaker_tenths_of_an_amp) + "-tenth circuit")
print("")
print("the room")
print(" believed : " + str(watts_the_traveller_expected) + " W, warm in twice the time")
print(" actual : " + str(watts_at_half_voltage) + " W, warm in " + str(times_longer_to_deliver_the_same_heat) + " times the time")
print(" is the element damaged : no; it runs cool and happy")
print(" is half the voltage half the heat : no; it is a quarter, and")
print(" the transformer that fixes it trips the breaker")
print("")
nc_power_read_as_half_of_rated_watts = 1000
nc_power_read_as_voltage_squared_watts = 500
nc_watts_the_second_halving_removes = 500
print("null control - square the voltage")
print(" power, read as half of rated : " + str(nc_power_read_as_half_of_rated_watts) + " W")
print(" power, read from voltage squared : " + str(nc_power_read_as_voltage_squared_watts) + " W")
print(" watts the second halving removes : " + str(nc_watts_the_second_halving_removes))
print(" no heater and no supply changed; the current was allowed")
print(" to fall along with the voltage it depends on")
print("")
print("what a resistive heater on half its voltage guarantees")
print(" it draws half the current : exactly, " + str(current_at_half_voltage_tenths_of_an_amp) + " tenths of an amp")
print(" it gives half the heat : not addressed; heat is voltage times")
print(" current and both halved, so " + str(watts_at_half_voltage) + " W, a quarter, and the")
print(" transformer that restores " + str(rated_watts) + " W pulls " + str(transformer_input_current_tenths_of_an_amp) + " tenths through a")
print(" " + str(circuit_breaker_tenths_of_an_amp) + "-tenth breaker")
print("")
print("halve one thing that is really a product of two and you have halved it")
print("twice; the voltage you can read on the wall, the current you cannot, and")
print("the heat is the pair of them")
print("")
print("Half the voltage is half the current - that step is right. But the heat is")
print("their product, so " + str(supply_volts) + " V into a " + str(rated_watts) + "-W element is " + str(watts_at_half_voltage) + " W, a quarter, taking " + str(times_longer_to_deliver_the_same_heat))
print("times as long, and the transformer that gives the full " + str(rated_watts) + " back draws " + str(transformer_input_current_tenths_of_an_amp) + " tenths")
print("of an amp past a " + str(circuit_breaker_tenths_of_an_amp) + "-tenth breaker, until the heat is read as the product it is.")stdout (executed)
textheater : 2000 W at 240 V, element 288 tenths of an ohm
supply : 120 V, half
current at 240 V : 83 tenths of an amp
current at 120 V : 41 tenths of an amp, half
power at 120 V : 500 W, 2500 per ten thousand of rated
power the traveller expected : 1000 W
time for the same heat : 4 times as long, not twice
a step-up transformer instead : full 2000 W, drawn from the 120 V side at 166 tenths of an amp
circuit breaker : 150 tenths of an amp, exceeded by 16
the half-and-half reasoning
voltages : 240 and 120, right
element : plain resistance, tolerant of low voltage
current : half the voltage, half the current
intent : half the heat, twice the time
facts wrong : 0
verdict : HALF THE VOLTAGE IS HALF THE HEAT
knowing that a resistive element takes half the current at
half the voltage is the part done right here, and it is why
41 tenths of an amp is exactly right
power is voltage times current
at 240 V : 240 times 83 tenths, 2000 W
at 120 V : the voltage halves AND the current halves,
120 times 41 tenths, 500 W
what halved once in the reasoning : one factor
what halves in the element : both factors, a quarter
what a transformer does : restores the voltage by doubling
the current it pulls, 166 tenths from a 150-tenth circuit
the room
believed : 1000 W, warm in twice the time
actual : 500 W, warm in 4 times the time
is the element damaged : no; it runs cool and happy
is half the voltage half the heat : no; it is a quarter, and
the transformer that fixes it trips the breaker
null control - square the voltage
power, read as half of rated : 1000 W
power, read from voltage squared : 500 W
watts the second halving removes : 500
no heater and no supply changed; the current was allowed
to fall along with the voltage it depends on
what a resistive heater on half its voltage guarantees
it draws half the current : exactly, 41 tenths of an amp
it gives half the heat : not addressed; heat is voltage times
current and both halved, so 500 W, a quarter, and the
transformer that restores 2000 W pulls 166 tenths through a
150-tenth breaker
halve one thing that is really a product of two and you have halved it
twice; the voltage you can read on the wall, the current you cannot, and
the heat is the pair of them
Half the voltage is half the current - that step is right. But the heat is
their product, so 120 V into a 2000-W element is 500 W, a quarter, taking 4
times as long, and the transformer that gives the full 2000 back draws 166 tenths
of an amp past a 150-tenth breaker, until the heat is read as the product it is.Trace event types
eml:run:starteml:assigneml:outputeml:run:done