Case 943

Ten of them were not ten times as loud

ten_of_them_were_not_ten_times_as_loud.eml - A restaurant measures sixty decibels with one table talking and eighty with the room full, reads the meter as a third more noise, and buys acoustic panels rated to absorb half the sound in the room. What twenty decibels is in sound energy, and what half the energy is in decibels, is computed below.

ok: true — round-trip fixpoint reached (python1 == python2)updated 2026-09-21

EML

eml
# Self-authored for the EML case corpus (no external origin). A restaurant
# measures sixty decibels with one table talking and eighty with the room full,
# reads the meter as a third more noise, and buys acoustic panels rated to
# absorb half the sound in the room. What twenty decibels is in sound energy,
# and what half the energy is in decibels, is computed below.
#
# The reasoning is careful. Both meter readings are accurate; eighty is exactly
# a third more than sixty; the panels genuinely absorb half the sound energy
# that reaches them; and the intent is exactly 'bring the room back toward
# the quiet reading'.
#
# Decibels count factors of ten in sound energy, ten of them per tenfold, so
# twenty more decibels is a hundred times the energy and not a third more -
# and removing half the energy takes back three decibels of the twenty, while
# getting back to sixty means removing ninety-nine percent of it.

60 => one_table_db
80 => full_room_db
1 => talkers_at_one_table
10 => decibels_per_tenfold_of_energy
3 => decibels_removed_by_halving_the_energy

full_room_db - one_table_db => decibels_added_by_the_room
int(decibels_added_by_the_room / decibels_per_tenfold_of_energy) => tenfolds_of_energy_added
# the two exponents below are that count of tenfolds, written as a literal
10^2 => energy_ratio_full_room_to_one_table
int(full_room_db * 10000 / one_table_db) - 10000 => meter_reading_rose_by_per_myriad
energy_ratio_full_room_to_one_table * 100 - 100 => energy_rose_by_percent
2^2 => times_as_loud_it_sounds
talkers_at_one_table * energy_ratio_full_room_to_one_table => tables_worth_of_talking_the_room_holds
full_room_db - decibels_removed_by_halving_the_energy => reading_after_the_panels_db
reading_after_the_panels_db - one_table_db => decibels_still_above_the_quiet_reading
int((energy_ratio_full_room_to_one_table - 1) * 100 / energy_ratio_full_room_to_one_table) => percent_of_energy_to_remove_to_reach_sixty

"one table talking               : " + str(one_table_db) + " dB" ^0
"full room                       : " + str(full_room_db) + " dB" ^0
"the meter rose by               : " + str(decibels_added_by_the_room) + " dB, " + str(meter_reading_rose_by_per_myriad) + " per ten thousand of the quiet reading" ^0
"" ^0
"tenfolds of energy in " + str(decibels_added_by_the_room) + " dB     : " + str(tenfolds_of_energy_added) ^0
"sound energy, full vs one table : " + str(energy_ratio_full_room_to_one_table) + " times, a rise of " + str(energy_rose_by_percent) + " percent" ^0
"how loud it sounds              : about " + str(times_as_loud_it_sounds) + " times as loud, a doubling per ten decibels" ^0
"tables' worth of talking        : " + str(tables_worth_of_talking_the_room_holds) ^0
"" ^0
"panels absorb half the energy   : minus " + str(decibels_removed_by_halving_the_energy) + " dB, to " + str(reading_after_the_panels_db) + " dB" ^0
"still above the quiet reading   : " + str(decibels_still_above_the_quiet_reading) + " dB" ^0
"energy to remove to reach " + str(one_table_db) + " dB : " + str(percent_of_energy_to_remove_to_reach_sixty) + " percent of it" ^0
"" ^0

# ---- what the owner verified ----

"the third-more reasoning" ^0
"  readings : " + str(one_table_db) + " and " + str(full_room_db) + ", both accurate" ^0
"  arithmetic : " + str(full_room_db) + " is a third more than " + str(one_table_db) ^0
"  panels : absorb half the sound energy, as rated" ^0
"  intent : bring the room back toward the quiet reading" ^0
"  facts wrong : 0" ^0
"  verdict : HALF THE SOUND UNDOES A THIRD MORE" ^0
"" ^0
"  reading the meter accurately is the part done right here," ^0
"  and it is why " + str(decibels_added_by_the_room) + " dB is exactly the rise, on the scale the" ^0
"  meter uses" ^0
"" ^0

# ---- what twenty decibels is ----

"a logarithmic meter" ^0
"  what a decibel counts : factors of ten in energy, " + str(decibels_per_tenfold_of_energy) + " dB per tenfold" ^0
"  " + str(decibels_added_by_the_room) + " dB : " + str(tenfolds_of_energy_added) + " tenfolds, " + str(energy_ratio_full_room_to_one_table) + " times the energy, not a third more" ^0
"  what the ear does with it : roughly doubles the loudness" ^0
"    per ten decibels, so " + str(times_as_loud_it_sounds) + " times as loud" ^0
"  what halving the energy buys : " + str(decibels_removed_by_halving_the_energy) + " dB, one small step on a" ^0
"    scale where the room climbed " + str(decibels_added_by_the_room) ^0
"  what reaching " + str(one_table_db) + " dB costs : removing " + str(percent_of_energy_to_remove_to_reach_sixty) + " percent of the energy" ^0
"" ^0

# ---- what the owner got ----

"the room after the panels" ^0
"  believed : most of the way back to " + str(one_table_db) + " dB" ^0
"  actual : " + str(reading_after_the_panels_db) + " dB, " + str(decibels_still_above_the_quiet_reading) + " above it, and barely noticed" ^0
"  is the meter wrong : no; both readings are right" ^0
"  is " + str(full_room_db) + " a third more noise than " + str(one_table_db) + " : no; it is " + str(energy_ratio_full_room_to_one_table) + " times the" ^0
"    energy, and the scale hid that on purpose" ^0
"" ^0

# ---- null control ----

# The same two readings compared as energy instead of as numbers on the meter.
3333 => nc_rise_read_as_meter_numbers_per_myriad
990000 => nc_rise_read_as_energy_per_myriad
986667 => nc_rise_the_scale_was_hiding_per_myriad

"null control - compare the energy, not the meter numbers" ^0
"  rise, as meter numbers : " + str(nc_rise_read_as_meter_numbers_per_myriad) + " per ten thousand" ^0
"  rise, as energy : " + str(nc_rise_read_as_energy_per_myriad) + " per ten thousand" ^0
"  rise the scale was hiding : " + str(nc_rise_the_scale_was_hiding_per_myriad) + " per ten thousand" ^0
"  no reading and no room changed; the numbers were converted" ^0
"  out of the scale that compresses them" ^0
"" ^0

# ---- the rule ----

"what two accurate decibel readings guarantee" ^0
"  the room rose " + str(decibels_added_by_the_room) + " dB : exactly, on the meter's scale" ^0
"  the room got a third noisier : not addressed; the scale is" ^0
"    logarithmic, " + str(decibels_added_by_the_room) + " dB is " + str(energy_ratio_full_room_to_one_table) + " times the energy, and panels that" ^0
"    remove half of it take back " + str(decibels_removed_by_halving_the_energy) + " dB of the " + str(decibels_added_by_the_room) ^0
"" ^0

"a meter that counts in tenfolds is honest about its own scale and silent" ^0
"about yours; read its numbers as if they were the thing measured and every" ^0
"remedy sized to them will be a hundred times too small" ^0
"" ^0

"The readings are exact: " + str(one_table_db) + " then " + str(full_room_db) + " dB. But decibels count tenfolds," ^0
"so the room holds " + str(energy_ratio_full_room_to_one_table) + " times the sound energy of one table, not a third more," ^0
"and panels that absorb half of it bring the meter down " + str(decibels_removed_by_halving_the_energy) + " dB to " + str(reading_after_the_panels_db) + ", still " + str(decibels_still_above_the_quiet_reading) ^0
"above the quiet reading, until the rise is read as energy rather than as digits." ^0

Python (deterministic transpilation)

python
one_table_db = 60
full_room_db = 80
talkers_at_one_table = 1
decibels_per_tenfold_of_energy = 10
decibels_removed_by_halving_the_energy = 3
decibels_added_by_the_room = full_room_db - one_table_db
tenfolds_of_energy_added = int(decibels_added_by_the_room / decibels_per_tenfold_of_energy)
energy_ratio_full_room_to_one_table = 10**2
meter_reading_rose_by_per_myriad = int(full_room_db * 10000 / one_table_db) - 10000
energy_rose_by_percent = energy_ratio_full_room_to_one_table * 100 - 100
times_as_loud_it_sounds = 2**2
tables_worth_of_talking_the_room_holds = talkers_at_one_table * energy_ratio_full_room_to_one_table
reading_after_the_panels_db = full_room_db - decibels_removed_by_halving_the_energy
decibels_still_above_the_quiet_reading = reading_after_the_panels_db - one_table_db
percent_of_energy_to_remove_to_reach_sixty = int((energy_ratio_full_room_to_one_table - 1) * 100 / energy_ratio_full_room_to_one_table)
print("one table talking               : " + str(one_table_db) + " dB")
print("full room                       : " + str(full_room_db) + " dB")
print("the meter rose by               : " + str(decibels_added_by_the_room) + " dB, " + str(meter_reading_rose_by_per_myriad) + " per ten thousand of the quiet reading")
print("")
print("tenfolds of energy in " + str(decibels_added_by_the_room) + " dB     : " + str(tenfolds_of_energy_added))
print("sound energy, full vs one table : " + str(energy_ratio_full_room_to_one_table) + " times, a rise of " + str(energy_rose_by_percent) + " percent")
print("how loud it sounds              : about " + str(times_as_loud_it_sounds) + " times as loud, a doubling per ten decibels")
print("tables' worth of talking        : " + str(tables_worth_of_talking_the_room_holds))
print("")
print("panels absorb half the energy   : minus " + str(decibels_removed_by_halving_the_energy) + " dB, to " + str(reading_after_the_panels_db) + " dB")
print("still above the quiet reading   : " + str(decibels_still_above_the_quiet_reading) + " dB")
print("energy to remove to reach " + str(one_table_db) + " dB : " + str(percent_of_energy_to_remove_to_reach_sixty) + " percent of it")
print("")
print("the third-more reasoning")
print("  readings : " + str(one_table_db) + " and " + str(full_room_db) + ", both accurate")
print("  arithmetic : " + str(full_room_db) + " is a third more than " + str(one_table_db))
print("  panels : absorb half the sound energy, as rated")
print("  intent : bring the room back toward the quiet reading")
print("  facts wrong : 0")
print("  verdict : HALF THE SOUND UNDOES A THIRD MORE")
print("")
print("  reading the meter accurately is the part done right here,")
print("  and it is why " + str(decibels_added_by_the_room) + " dB is exactly the rise, on the scale the")
print("  meter uses")
print("")
print("a logarithmic meter")
print("  what a decibel counts : factors of ten in energy, " + str(decibels_per_tenfold_of_energy) + " dB per tenfold")
print("  " + str(decibels_added_by_the_room) + " dB : " + str(tenfolds_of_energy_added) + " tenfolds, " + str(energy_ratio_full_room_to_one_table) + " times the energy, not a third more")
print("  what the ear does with it : roughly doubles the loudness")
print("    per ten decibels, so " + str(times_as_loud_it_sounds) + " times as loud")
print("  what halving the energy buys : " + str(decibels_removed_by_halving_the_energy) + " dB, one small step on a")
print("    scale where the room climbed " + str(decibels_added_by_the_room))
print("  what reaching " + str(one_table_db) + " dB costs : removing " + str(percent_of_energy_to_remove_to_reach_sixty) + " percent of the energy")
print("")
print("the room after the panels")
print("  believed : most of the way back to " + str(one_table_db) + " dB")
print("  actual : " + str(reading_after_the_panels_db) + " dB, " + str(decibels_still_above_the_quiet_reading) + " above it, and barely noticed")
print("  is the meter wrong : no; both readings are right")
print("  is " + str(full_room_db) + " a third more noise than " + str(one_table_db) + " : no; it is " + str(energy_ratio_full_room_to_one_table) + " times the")
print("    energy, and the scale hid that on purpose")
print("")
nc_rise_read_as_meter_numbers_per_myriad = 3333
nc_rise_read_as_energy_per_myriad = 990000
nc_rise_the_scale_was_hiding_per_myriad = 986667
print("null control - compare the energy, not the meter numbers")
print("  rise, as meter numbers : " + str(nc_rise_read_as_meter_numbers_per_myriad) + " per ten thousand")
print("  rise, as energy : " + str(nc_rise_read_as_energy_per_myriad) + " per ten thousand")
print("  rise the scale was hiding : " + str(nc_rise_the_scale_was_hiding_per_myriad) + " per ten thousand")
print("  no reading and no room changed; the numbers were converted")
print("  out of the scale that compresses them")
print("")
print("what two accurate decibel readings guarantee")
print("  the room rose " + str(decibels_added_by_the_room) + " dB : exactly, on the meter's scale")
print("  the room got a third noisier : not addressed; the scale is")
print("    logarithmic, " + str(decibels_added_by_the_room) + " dB is " + str(energy_ratio_full_room_to_one_table) + " times the energy, and panels that")
print("    remove half of it take back " + str(decibels_removed_by_halving_the_energy) + " dB of the " + str(decibels_added_by_the_room))
print("")
print("a meter that counts in tenfolds is honest about its own scale and silent")
print("about yours; read its numbers as if they were the thing measured and every")
print("remedy sized to them will be a hundred times too small")
print("")
print("The readings are exact: " + str(one_table_db) + " then " + str(full_room_db) + " dB. But decibels count tenfolds,")
print("so the room holds " + str(energy_ratio_full_room_to_one_table) + " times the sound energy of one table, not a third more,")
print("and panels that absorb half of it bring the meter down " + str(decibels_removed_by_halving_the_energy) + " dB to " + str(reading_after_the_panels_db) + ", still " + str(decibels_still_above_the_quiet_reading))
print("above the quiet reading, until the rise is read as energy rather than as digits.")

stdout (executed)

text
one table talking               : 60 dB
full room                       : 80 dB
the meter rose by               : 20 dB, 3333 per ten thousand of the quiet reading

tenfolds of energy in 20 dB     : 2
sound energy, full vs one table : 100 times, a rise of 9900 percent
how loud it sounds              : about 4 times as loud, a doubling per ten decibels
tables' worth of talking        : 100

panels absorb half the energy   : minus 3 dB, to 77 dB
still above the quiet reading   : 17 dB
energy to remove to reach 60 dB : 99 percent of it

the third-more reasoning
  readings : 60 and 80, both accurate
  arithmetic : 80 is a third more than 60
  panels : absorb half the sound energy, as rated
  intent : bring the room back toward the quiet reading
  facts wrong : 0
  verdict : HALF THE SOUND UNDOES A THIRD MORE

  reading the meter accurately is the part done right here,
  and it is why 20 dB is exactly the rise, on the scale the
  meter uses

a logarithmic meter
  what a decibel counts : factors of ten in energy, 10 dB per tenfold
  20 dB : 2 tenfolds, 100 times the energy, not a third more
  what the ear does with it : roughly doubles the loudness
    per ten decibels, so 4 times as loud
  what halving the energy buys : 3 dB, one small step on a
    scale where the room climbed 20
  what reaching 60 dB costs : removing 99 percent of the energy

the room after the panels
  believed : most of the way back to 60 dB
  actual : 77 dB, 17 above it, and barely noticed
  is the meter wrong : no; both readings are right
  is 80 a third more noise than 60 : no; it is 100 times the
    energy, and the scale hid that on purpose

null control - compare the energy, not the meter numbers
  rise, as meter numbers : 3333 per ten thousand
  rise, as energy : 990000 per ten thousand
  rise the scale was hiding : 986667 per ten thousand
  no reading and no room changed; the numbers were converted
  out of the scale that compresses them

what two accurate decibel readings guarantee
  the room rose 20 dB : exactly, on the meter's scale
  the room got a third noisier : not addressed; the scale is
    logarithmic, 20 dB is 100 times the energy, and panels that
    remove half of it take back 3 dB of the 20

a meter that counts in tenfolds is honest about its own scale and silent
about yours; read its numbers as if they were the thing measured and every
remedy sized to them will be a hundred times too small

The readings are exact: 60 then 80 dB. But decibels count tenfolds,
so the room holds 100 times the sound energy of one table, not a third more,
and panels that absorb half of it bring the meter down 3 dB to 77, still 17
above the quiet reading, until the rise is read as energy rather than as digits.

Trace event types

eml:run:starteml:assigneml:outputeml:run:done