<!-- canonical: efficientnewlanguage.org/ai/examples/963-the-long-cord-took-its-share-of-the-heat | ai_layer_version: 0.1.0 | updated: 2026-09-22 -->

# Example 963 — The long cord took its share of the heat

`the_long_cord_took_its_share_of_the_heat.eml` - A 2300-watt heater is run at the end of a fifty-metre extension cord of thin wire, the cord is rated for the current, the heater is rated for the supply, and the room heats slowly while the cord grows warm along its whole length. Where the missing heat went is computed below.

## EML

```eml
# Self-authored for the EML case corpus (no external origin). A 2300-watt
# heater is run at the end of a fifty-metre extension cord of thin wire, the
# cord is rated for the current, the heater is rated for the supply, and the
# room heats slowly while the cord grows warm along its whole length. Where the
# missing heat went is computed below.
#
# The reasoning is careful. The cord's current rating covers ten amps; the
# heater draws ten amps; the supply is 230 volts; and the intent was exactly
# 'the heater's full output at the far end of the cord'.
#
# A conductor has resistance in proportion to its length and in inverse
# proportion to its cross-section, and current through resistance makes heat
# as the square of the current - so a hundred metres of thin copper at ten amps
# drops eleven volts and burns 115 watts as a heater of its own, while ten
# metres of thicker wire would have taken fourteen.

230 => supply_volts
2300 => heater_watts_at_full_supply
50 => cord_length_m
115 => long_thin_cord_resistance_hundredths_of_an_ohm
14 => short_thick_cord_resistance_hundredths_of_an_ohm

int(heater_watts_at_full_supply / supply_volts) => current_amps
cord_length_m * 2 => conductor_length_out_and_back_m
int(current_amps * long_thin_cord_resistance_hundredths_of_an_ohm / 10) => long_cord_voltage_drop_tenths_of_a_volt
int(current_amps * current_amps * long_thin_cord_resistance_hundredths_of_an_ohm / 100) => long_cord_heat_watts
supply_volts * 10 - long_cord_voltage_drop_tenths_of_a_volt => volts_at_the_heater_tenths
int(heater_watts_at_full_supply * volts_at_the_heater_tenths * volts_at_the_heater_tenths / (supply_volts * 10 * supply_volts * 10)) => heater_watts_actually_delivered
heater_watts_at_full_supply - heater_watts_actually_delivered => heater_watts_lost_to_the_drop
int(long_cord_voltage_drop_tenths_of_a_volt * 1000 / (supply_volts * 10)) => voltage_drop_per_mille

int(current_amps * short_thick_cord_resistance_hundredths_of_an_ohm / 10) => short_cord_voltage_drop_tenths_of_a_volt
int(current_amps * current_amps * short_thick_cord_resistance_hundredths_of_an_ohm / 100) => short_cord_heat_watts
long_cord_heat_watts - short_cord_heat_watts => heat_the_long_cord_adds_watts

"supply                          : " + str(supply_volts) + " V" ^0
"heater at full supply           : " + str(heater_watts_at_full_supply) + " W, " + str(current_amps) + " A" ^0
"cord                            : " + str(cord_length_m) + " m, " + str(conductor_length_out_and_back_m) + " m of conductor out and back, " + str(long_thin_cord_resistance_hundredths_of_an_ohm) + " hundredths of an ohm" ^0
"" ^0
"drop along the cord             : " + str(long_cord_voltage_drop_tenths_of_a_volt) + " tenths of a volt, " + str(voltage_drop_per_mille) + " per thousand of the supply" ^0
"volts at the heater             : " + str(volts_at_the_heater_tenths) + " tenths" ^0
"heater actually delivers        : " + str(heater_watts_actually_delivered) + " W, " + str(heater_watts_lost_to_the_drop) + " W short" ^0
"heat made in the cord           : " + str(long_cord_heat_watts) + " W, along its whole length" ^0
"" ^0
"a short thick cord instead      : " + str(short_thick_cord_resistance_hundredths_of_an_ohm) + " hundredths of an ohm, drop " + str(short_cord_voltage_drop_tenths_of_a_volt) + " tenths of a volt, " + str(short_cord_heat_watts) + " W of heat" ^0
"heat the long cord adds         : " + str(heat_the_long_cord_adds_watts) + " W" ^0
"" ^0

# ---- what the user verified ----

"the rated-for-it reasoning" ^0
"  cord rating : covers " + str(current_amps) + " A" ^0
"  heater draw : " + str(current_amps) + " A at " + str(supply_volts) + " V" ^0
"  supply : " + str(supply_volts) + " V at the wall" ^0
"  intent : the heater's full output at the far end" ^0
"  facts wrong : 0" ^0
"  verdict : RATED FOR THE CURRENT, SO IT DELIVERS THE POWER" ^0
"" ^0
"  matching the cord's current rating to the heater's draw is" ^0
"  the part done right here, and it is why the cord did not" ^0
"  melt: " + str(current_amps) + " A is within what it can carry" ^0
"" ^0

# ---- where the heat went ----

"a cord is a resistor in series with the load" ^0
"  resistance : grows with length, shrinks with cross-section," ^0
"    " + str(long_thin_cord_resistance_hundredths_of_an_ohm) + " hundredths of an ohm for " + str(conductor_length_out_and_back_m) + " m of thin copper" ^0
"  drop : current times resistance, " + str(long_cord_voltage_drop_tenths_of_a_volt) + " tenths of a volt" ^0
"    that never reach the heater" ^0
"  heat in the cord : current squared times resistance, " + str(long_cord_heat_watts) + " W" ^0
"    spread along fifty metres, warm and not dangerous" ^0
"  heat at the heater : falls with the square of its voltage," ^0
"    " + str(heater_watts_actually_delivered) + " W instead of " + str(heater_watts_at_full_supply) ^0
"  what the rating promised : that the cord survives " + str(current_amps) + " A, not" ^0
"    that it passes the power through untouched" ^0
"" ^0

# ---- what the user got ----

"the room" ^0
"  believed : " + str(heater_watts_at_full_supply) + " W of heat where the heater is" ^0
"  actual : " + str(heater_watts_actually_delivered) + " W at the heater and " + str(long_cord_heat_watts) + " W along the cord" ^0
"  is the cord under-rated : no; it carries the current safely" ^0
"  is a rated cord lossless : no; a rating is a safety ceiling," ^0
"    and every metre of it is resistance the current pays for" ^0
"" ^0

# ---- null control ----

# The same heater on a short, thick cord instead of a long, thin one.
115 => nc_heat_lost_in_the_long_thin_cord_watts
14 => nc_heat_lost_in_the_short_thick_cord_watts
101 => nc_watts_the_shorter_thicker_cord_returns_to_the_room

"null control - shorten and thicken the cord" ^0
"  heat lost in the cord, long and thin : " + str(nc_heat_lost_in_the_long_thin_cord_watts) + " W" ^0
"  heat lost in the cord, short and thick : " + str(nc_heat_lost_in_the_short_thick_cord_watts) + " W" ^0
"  watts the change returns to the room : " + str(nc_watts_the_shorter_thicker_cord_returns_to_the_room) ^0
"  no heater and no supply changed; the resistor in series" ^0
"  was made small" ^0
"" ^0

# ---- the rule ----

"what a cord rated for the current guarantees" ^0
"  the cord carries " + str(current_amps) + " A without damage : exactly" ^0
"  the load receives the supply voltage : not addressed; " + str(conductor_length_out_and_back_m) + " m of" ^0
"    thin conductor drops " + str(long_cord_voltage_drop_tenths_of_a_volt) + " tenths of a volt and turns " + str(long_cord_heat_watts) + " W into" ^0
"    warmth along the cord, so the heater delivers " + str(heater_watts_actually_delivered) + " W of its " + str(heater_watts_at_full_supply) ^0
"" ^0

"every conductor is a small heater in series with the one you meant to run," ^0
"and a current rating only says how much of that the cord can stand, not how" ^0
"little of it there will be" ^0
"" ^0

"The cord is rated for " + str(current_amps) + " A and carries it - that holds. But " + str(conductor_length_out_and_back_m) + " m of thin" ^0
"copper is " + str(long_thin_cord_resistance_hundredths_of_an_ohm) + " hundredths of an ohm in series: " + str(long_cord_voltage_drop_tenths_of_a_volt) + " tenths of a volt dropped, " + str(long_cord_heat_watts) + " W burnt" ^0
"along the cord, and " + str(heater_watts_actually_delivered) + " W left for the heater, where a short thick cord would burn" ^0
"" + str(short_cord_heat_watts) + ", until the cord is chosen for its resistance and not only for its rating." ^0
```

## Python (deterministic transpilation)

```python
supply_volts = 230
heater_watts_at_full_supply = 2300
cord_length_m = 50
long_thin_cord_resistance_hundredths_of_an_ohm = 115
short_thick_cord_resistance_hundredths_of_an_ohm = 14
current_amps = int(heater_watts_at_full_supply / supply_volts)
conductor_length_out_and_back_m = cord_length_m * 2
long_cord_voltage_drop_tenths_of_a_volt = int(current_amps * long_thin_cord_resistance_hundredths_of_an_ohm / 10)
long_cord_heat_watts = int(current_amps * current_amps * long_thin_cord_resistance_hundredths_of_an_ohm / 100)
volts_at_the_heater_tenths = supply_volts * 10 - long_cord_voltage_drop_tenths_of_a_volt
heater_watts_actually_delivered = int(heater_watts_at_full_supply * volts_at_the_heater_tenths * volts_at_the_heater_tenths / (supply_volts * 10 * supply_volts * 10))
heater_watts_lost_to_the_drop = heater_watts_at_full_supply - heater_watts_actually_delivered
voltage_drop_per_mille = int(long_cord_voltage_drop_tenths_of_a_volt * 1000 / (supply_volts * 10))
short_cord_voltage_drop_tenths_of_a_volt = int(current_amps * short_thick_cord_resistance_hundredths_of_an_ohm / 10)
short_cord_heat_watts = int(current_amps * current_amps * short_thick_cord_resistance_hundredths_of_an_ohm / 100)
heat_the_long_cord_adds_watts = long_cord_heat_watts - short_cord_heat_watts
print("supply                          : " + str(supply_volts) + " V")
print("heater at full supply           : " + str(heater_watts_at_full_supply) + " W, " + str(current_amps) + " A")
print("cord                            : " + str(cord_length_m) + " m, " + str(conductor_length_out_and_back_m) + " m of conductor out and back, " + str(long_thin_cord_resistance_hundredths_of_an_ohm) + " hundredths of an ohm")
print("")
print("drop along the cord             : " + str(long_cord_voltage_drop_tenths_of_a_volt) + " tenths of a volt, " + str(voltage_drop_per_mille) + " per thousand of the supply")
print("volts at the heater             : " + str(volts_at_the_heater_tenths) + " tenths")
print("heater actually delivers        : " + str(heater_watts_actually_delivered) + " W, " + str(heater_watts_lost_to_the_drop) + " W short")
print("heat made in the cord           : " + str(long_cord_heat_watts) + " W, along its whole length")
print("")
print("a short thick cord instead      : " + str(short_thick_cord_resistance_hundredths_of_an_ohm) + " hundredths of an ohm, drop " + str(short_cord_voltage_drop_tenths_of_a_volt) + " tenths of a volt, " + str(short_cord_heat_watts) + " W of heat")
print("heat the long cord adds         : " + str(heat_the_long_cord_adds_watts) + " W")
print("")
print("the rated-for-it reasoning")
print("  cord rating : covers " + str(current_amps) + " A")
print("  heater draw : " + str(current_amps) + " A at " + str(supply_volts) + " V")
print("  supply : " + str(supply_volts) + " V at the wall")
print("  intent : the heater's full output at the far end")
print("  facts wrong : 0")
print("  verdict : RATED FOR THE CURRENT, SO IT DELIVERS THE POWER")
print("")
print("  matching the cord's current rating to the heater's draw is")
print("  the part done right here, and it is why the cord did not")
print("  melt: " + str(current_amps) + " A is within what it can carry")
print("")
print("a cord is a resistor in series with the load")
print("  resistance : grows with length, shrinks with cross-section,")
print("    " + str(long_thin_cord_resistance_hundredths_of_an_ohm) + " hundredths of an ohm for " + str(conductor_length_out_and_back_m) + " m of thin copper")
print("  drop : current times resistance, " + str(long_cord_voltage_drop_tenths_of_a_volt) + " tenths of a volt")
print("    that never reach the heater")
print("  heat in the cord : current squared times resistance, " + str(long_cord_heat_watts) + " W")
print("    spread along fifty metres, warm and not dangerous")
print("  heat at the heater : falls with the square of its voltage,")
print("    " + str(heater_watts_actually_delivered) + " W instead of " + str(heater_watts_at_full_supply))
print("  what the rating promised : that the cord survives " + str(current_amps) + " A, not")
print("    that it passes the power through untouched")
print("")
print("the room")
print("  believed : " + str(heater_watts_at_full_supply) + " W of heat where the heater is")
print("  actual : " + str(heater_watts_actually_delivered) + " W at the heater and " + str(long_cord_heat_watts) + " W along the cord")
print("  is the cord under-rated : no; it carries the current safely")
print("  is a rated cord lossless : no; a rating is a safety ceiling,")
print("    and every metre of it is resistance the current pays for")
print("")
nc_heat_lost_in_the_long_thin_cord_watts = 115
nc_heat_lost_in_the_short_thick_cord_watts = 14
nc_watts_the_shorter_thicker_cord_returns_to_the_room = 101
print("null control - shorten and thicken the cord")
print("  heat lost in the cord, long and thin : " + str(nc_heat_lost_in_the_long_thin_cord_watts) + " W")
print("  heat lost in the cord, short and thick : " + str(nc_heat_lost_in_the_short_thick_cord_watts) + " W")
print("  watts the change returns to the room : " + str(nc_watts_the_shorter_thicker_cord_returns_to_the_room))
print("  no heater and no supply changed; the resistor in series")
print("  was made small")
print("")
print("what a cord rated for the current guarantees")
print("  the cord carries " + str(current_amps) + " A without damage : exactly")
print("  the load receives the supply voltage : not addressed; " + str(conductor_length_out_and_back_m) + " m of")
print("    thin conductor drops " + str(long_cord_voltage_drop_tenths_of_a_volt) + " tenths of a volt and turns " + str(long_cord_heat_watts) + " W into")
print("    warmth along the cord, so the heater delivers " + str(heater_watts_actually_delivered) + " W of its " + str(heater_watts_at_full_supply))
print("")
print("every conductor is a small heater in series with the one you meant to run,")
print("and a current rating only says how much of that the cord can stand, not how")
print("little of it there will be")
print("")
print("The cord is rated for " + str(current_amps) + " A and carries it - that holds. But " + str(conductor_length_out_and_back_m) + " m of thin")
print("copper is " + str(long_thin_cord_resistance_hundredths_of_an_ohm) + " hundredths of an ohm in series: " + str(long_cord_voltage_drop_tenths_of_a_volt) + " tenths of a volt dropped, " + str(long_cord_heat_watts) + " W burnt")
print("along the cord, and " + str(heater_watts_actually_delivered) + " W left for the heater, where a short thick cord would burn")
print("" + str(short_cord_heat_watts) + ", until the cord is chosen for its resistance and not only for its rating.")
```

## stdout (executed)

```text
supply                          : 230 V
heater at full supply           : 2300 W, 10 A
cord                            : 50 m, 100 m of conductor out and back, 115 hundredths of an ohm

drop along the cord             : 115 tenths of a volt, 50 per thousand of the supply
volts at the heater             : 2185 tenths
heater actually delivers        : 2075 W, 225 W short
heat made in the cord           : 115 W, along its whole length

a short thick cord instead      : 14 hundredths of an ohm, drop 14 tenths of a volt, 14 W of heat
heat the long cord adds         : 101 W

the rated-for-it reasoning
  cord rating : covers 10 A
  heater draw : 10 A at 230 V
  supply : 230 V at the wall
  intent : the heater's full output at the far end
  facts wrong : 0
  verdict : RATED FOR THE CURRENT, SO IT DELIVERS THE POWER

  matching the cord's current rating to the heater's draw is
  the part done right here, and it is why the cord did not
  melt: 10 A is within what it can carry

a cord is a resistor in series with the load
  resistance : grows with length, shrinks with cross-section,
    115 hundredths of an ohm for 100 m of thin copper
  drop : current times resistance, 115 tenths of a volt
    that never reach the heater
  heat in the cord : current squared times resistance, 115 W
    spread along fifty metres, warm and not dangerous
  heat at the heater : falls with the square of its voltage,
    2075 W instead of 2300
  what the rating promised : that the cord survives 10 A, not
    that it passes the power through untouched

the room
  believed : 2300 W of heat where the heater is
  actual : 2075 W at the heater and 115 W along the cord
  is the cord under-rated : no; it carries the current safely
  is a rated cord lossless : no; a rating is a safety ceiling,
    and every metre of it is resistance the current pays for

null control - shorten and thicken the cord
  heat lost in the cord, long and thin : 115 W
  heat lost in the cord, short and thick : 14 W
  watts the change returns to the room : 101
  no heater and no supply changed; the resistor in series
  was made small

what a cord rated for the current guarantees
  the cord carries 10 A without damage : exactly
  the load receives the supply voltage : not addressed; 100 m of
    thin conductor drops 115 tenths of a volt and turns 115 W into
    warmth along the cord, so the heater delivers 2075 W of its 2300

every conductor is a small heater in series with the one you meant to run,
and a current rating only says how much of that the cord can stand, not how
little of it there will be

The cord is rated for 10 A and carries it - that holds. But 100 m of thin
copper is 115 hundredths of an ohm in series: 115 tenths of a volt dropped, 115 W burnt
along the cord, and 2075 W left for the heater, where a short thick cord would burn
14, until the cord is chosen for its resistance and not only for its rating.
```

## Round-trip

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

## Trace event types

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