<!-- canonical: efficientnewlanguage.org/ai/examples/958-half-the-voltage-was-a-quarter-of-the-heat | ai_layer_version: 0.1.0 | updated: 2026-09-22 -->

# Example 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.

## 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." ^0
```

## Python (deterministic transpilation)

```python
rated_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)

```text
heater                          : 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.
```

## Round-trip

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

## Trace event types

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