Case 931

Ninety survive and ten die were the same number

ninety_survive_and_ten_die_were_the_same_number.eml - Patients are told the surgery's outcome either as 'ninety of a hundred survive' or as 'ten of a hundred die'. The two statements are the same statistic, both are true, and the groups are alike. How many choose the surgery under each is computed below.

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

EML

eml
# Self-authored for the EML case corpus (no external origin). Patients are
# told the surgery's outcome either as 'ninety of a hundred survive' or as
# 'ten of a hundred die'. The two statements are the same statistic, both are
# true, and the groups are alike. How many choose the surgery under each is
# computed below.
#
# The study is careful. The statistic is real and identical in both wordings;
# the two groups are comparable; the choices are honestly counted; and the
# intent is exactly 'do patients want this surgery'.
#
# Ninety survive and ten die are one number said two ways, and the way it is
# said moves the choice by thirty points - the decision answered the framing,
# not the fact.

90 => survive_per_hundred
1000 => patients_told_each_way
800 => chose_surgery_when_told_survival
500 => chose_surgery_when_told_mortality

100 - survive_per_hundred => die_per_hundred
survive_per_hundred + die_per_hundred => the_two_framings_add_to
int(chose_surgery_when_told_survival * 10000 / patients_told_each_way) => uptake_survival_frame_per_myriad
int(chose_surgery_when_told_mortality * 10000 / patients_told_each_way) => uptake_mortality_frame_per_myriad
uptake_survival_frame_per_myriad - uptake_mortality_frame_per_myriad => uptake_moved_by_the_wording_per_myriad
0 => difference_in_the_underlying_fact

"the statistic                   : " + str(survive_per_hundred) + " survive, " + str(die_per_hundred) + " die, of a hundred" ^0
"the two framings add to         : " + str(the_two_framings_add_to) + " - one fact" ^0
"difference in the fact          : " + str(difference_in_the_underlying_fact) ^0
"" ^0
"chose surgery, told survival    : " + str(uptake_survival_frame_per_myriad) + " per ten thousand" ^0
"chose surgery, told mortality   : " + str(uptake_mortality_frame_per_myriad) + " per ten thousand" ^0
"uptake moved by the wording     : " + str(uptake_moved_by_the_wording_per_myriad) + " per ten thousand" ^0
"" ^0

# ---- what the study verified ----

"the two-wording study" ^0
"  statistic : real, identical in both wordings" ^0
"  groups : comparable" ^0
"  choices : honestly counted" ^0
"  intent : do patients want this surgery" ^0
"  facts that differ between groups : " + str(difference_in_the_underlying_fact) ^0
"  verdict : SAME FACT, TWO CONSENT RATES" ^0
"" ^0
"  keeping the underlying fact identical is the part done" ^0
"  right here, and it is why the thirty-point gap cannot" ^0
"  be about the surgery" ^0
"" ^0

# ---- what the wording does ----

"framing" ^0
"  'ninety survive' : the listener pictures the ninety" ^0
"  'ten die' : the listener pictures the ten" ^0
"  the arithmetic : the same, " + str(survive_per_hundred) + " and " + str(die_per_hundred) ^0
"  the picture : not the same, and people decide on the" ^0
"    picture" ^0
"  so the consent rate : " + str(uptake_survival_frame_per_myriad) + " or " + str(uptake_mortality_frame_per_myriad) + " per ten thousand, chosen by" ^0
"    whoever wrote the sentence" ^0
"" ^0

# ---- what the hospital got ----

"the consent figures" ^0
"  reported demand : depends on the leaflet" ^0
"  is either figure wrong : no" ^0
"  does the consent rate measure the patients' judgement of" ^0
"    the surgery : only after the frame's contribution is" ^0
"    taken out, and it is " + str(uptake_moved_by_the_wording_per_myriad) + " per ten thousand" ^0
"" ^0

# ---- null control ----

# The same statistic presented both ways at once ('ninety survive, ten die')
# to every patient, so no single frame is the picture.
3000 => nc_gap_between_single_frames_per_myriad
0 => nc_gap_when_both_frames_are_shown_per_myriad
1 => nc_consent_rate_now_about_the_surgery

"null control - show both framings to everyone" ^0
"  gap between the single frames : " + str(nc_gap_between_single_frames_per_myriad) + " per ten thousand" ^0
"  gap when both are shown : " + str(nc_gap_when_both_frames_are_shown_per_myriad) ^0
"  consent rate now about the surgery : " + str(nc_consent_rate_now_about_the_surgery) ^0
"  no statistic and no patient changed; the sentence stopped" ^0
"  choosing which hundred people to picture" ^0
"" ^0

# ---- the rule ----

"what an identical statistic in both groups guarantees" ^0
"  the patients were told the same fact : exactly, " + str(survive_per_hundred) + " and" ^0
"    " + str(die_per_hundred) + " are one number" ^0
"  the patients decided on the fact : not addressed; the" ^0
"    survival wording consented " + str(uptake_survival_frame_per_myriad) + " and the mortality wording " + str(uptake_mortality_frame_per_myriad) ^0
"    per ten thousand, " + str(uptake_moved_by_the_wording_per_myriad) + " decided by the sentence" ^0
"" ^0

"a number can be true in two sentences that are not the same sentence, and a" ^0
"decision is made on the sentence; what the arithmetic makes identical the" ^0
"telling makes different, and the consent form is a telling" ^0
"" ^0

"Both groups heard the same fact - " + str(survive_per_hundred) + " survive is " + str(die_per_hundred) + " die. But told as survival," ^0
"" + str(uptake_survival_frame_per_myriad) + " per ten thousand chose the surgery, and told as mortality, " + str(uptake_mortality_frame_per_myriad) + "; the" ^0
"" + str(uptake_moved_by_the_wording_per_myriad) + " per ten thousand between them is the wording, not the surgery, until every" ^0
"patient is shown both." ^0

Python (deterministic transpilation)

python
survive_per_hundred = 90
patients_told_each_way = 1000
chose_surgery_when_told_survival = 800
chose_surgery_when_told_mortality = 500
die_per_hundred = 100 - survive_per_hundred
the_two_framings_add_to = survive_per_hundred + die_per_hundred
uptake_survival_frame_per_myriad = int(chose_surgery_when_told_survival * 10000 / patients_told_each_way)
uptake_mortality_frame_per_myriad = int(chose_surgery_when_told_mortality * 10000 / patients_told_each_way)
uptake_moved_by_the_wording_per_myriad = uptake_survival_frame_per_myriad - uptake_mortality_frame_per_myriad
difference_in_the_underlying_fact = 0
print("the statistic                   : " + str(survive_per_hundred) + " survive, " + str(die_per_hundred) + " die, of a hundred")
print("the two framings add to         : " + str(the_two_framings_add_to) + " - one fact")
print("difference in the fact          : " + str(difference_in_the_underlying_fact))
print("")
print("chose surgery, told survival    : " + str(uptake_survival_frame_per_myriad) + " per ten thousand")
print("chose surgery, told mortality   : " + str(uptake_mortality_frame_per_myriad) + " per ten thousand")
print("uptake moved by the wording     : " + str(uptake_moved_by_the_wording_per_myriad) + " per ten thousand")
print("")
print("the two-wording study")
print("  statistic : real, identical in both wordings")
print("  groups : comparable")
print("  choices : honestly counted")
print("  intent : do patients want this surgery")
print("  facts that differ between groups : " + str(difference_in_the_underlying_fact))
print("  verdict : SAME FACT, TWO CONSENT RATES")
print("")
print("  keeping the underlying fact identical is the part done")
print("  right here, and it is why the thirty-point gap cannot")
print("  be about the surgery")
print("")
print("framing")
print("  'ninety survive' : the listener pictures the ninety")
print("  'ten die' : the listener pictures the ten")
print("  the arithmetic : the same, " + str(survive_per_hundred) + " and " + str(die_per_hundred))
print("  the picture : not the same, and people decide on the")
print("    picture")
print("  so the consent rate : " + str(uptake_survival_frame_per_myriad) + " or " + str(uptake_mortality_frame_per_myriad) + " per ten thousand, chosen by")
print("    whoever wrote the sentence")
print("")
print("the consent figures")
print("  reported demand : depends on the leaflet")
print("  is either figure wrong : no")
print("  does the consent rate measure the patients' judgement of")
print("    the surgery : only after the frame's contribution is")
print("    taken out, and it is " + str(uptake_moved_by_the_wording_per_myriad) + " per ten thousand")
print("")
nc_gap_between_single_frames_per_myriad = 3000
nc_gap_when_both_frames_are_shown_per_myriad = 0
nc_consent_rate_now_about_the_surgery = 1
print("null control - show both framings to everyone")
print("  gap between the single frames : " + str(nc_gap_between_single_frames_per_myriad) + " per ten thousand")
print("  gap when both are shown : " + str(nc_gap_when_both_frames_are_shown_per_myriad))
print("  consent rate now about the surgery : " + str(nc_consent_rate_now_about_the_surgery))
print("  no statistic and no patient changed; the sentence stopped")
print("  choosing which hundred people to picture")
print("")
print("what an identical statistic in both groups guarantees")
print("  the patients were told the same fact : exactly, " + str(survive_per_hundred) + " and")
print("    " + str(die_per_hundred) + " are one number")
print("  the patients decided on the fact : not addressed; the")
print("    survival wording consented " + str(uptake_survival_frame_per_myriad) + " and the mortality wording " + str(uptake_mortality_frame_per_myriad))
print("    per ten thousand, " + str(uptake_moved_by_the_wording_per_myriad) + " decided by the sentence")
print("")
print("a number can be true in two sentences that are not the same sentence, and a")
print("decision is made on the sentence; what the arithmetic makes identical the")
print("telling makes different, and the consent form is a telling")
print("")
print("Both groups heard the same fact - " + str(survive_per_hundred) + " survive is " + str(die_per_hundred) + " die. But told as survival,")
print("" + str(uptake_survival_frame_per_myriad) + " per ten thousand chose the surgery, and told as mortality, " + str(uptake_mortality_frame_per_myriad) + "; the")
print("" + str(uptake_moved_by_the_wording_per_myriad) + " per ten thousand between them is the wording, not the surgery, until every")
print("patient is shown both.")

stdout (executed)

text
the statistic                   : 90 survive, 10 die, of a hundred
the two framings add to         : 100 - one fact
difference in the fact          : 0

chose surgery, told survival    : 8000 per ten thousand
chose surgery, told mortality   : 5000 per ten thousand
uptake moved by the wording     : 3000 per ten thousand

the two-wording study
  statistic : real, identical in both wordings
  groups : comparable
  choices : honestly counted
  intent : do patients want this surgery
  facts that differ between groups : 0
  verdict : SAME FACT, TWO CONSENT RATES

  keeping the underlying fact identical is the part done
  right here, and it is why the thirty-point gap cannot
  be about the surgery

framing
  'ninety survive' : the listener pictures the ninety
  'ten die' : the listener pictures the ten
  the arithmetic : the same, 90 and 10
  the picture : not the same, and people decide on the
    picture
  so the consent rate : 8000 or 5000 per ten thousand, chosen by
    whoever wrote the sentence

the consent figures
  reported demand : depends on the leaflet
  is either figure wrong : no
  does the consent rate measure the patients' judgement of
    the surgery : only after the frame's contribution is
    taken out, and it is 3000 per ten thousand

null control - show both framings to everyone
  gap between the single frames : 3000 per ten thousand
  gap when both are shown : 0
  consent rate now about the surgery : 1
  no statistic and no patient changed; the sentence stopped
  choosing which hundred people to picture

what an identical statistic in both groups guarantees
  the patients were told the same fact : exactly, 90 and
    10 are one number
  the patients decided on the fact : not addressed; the
    survival wording consented 8000 and the mortality wording 5000
    per ten thousand, 3000 decided by the sentence

a number can be true in two sentences that are not the same sentence, and a
decision is made on the sentence; what the arithmetic makes identical the
telling makes different, and the consent form is a telling

Both groups heard the same fact - 90 survive is 10 die. But told as survival,
8000 per ten thousand chose the surgery, and told as mortality, 5000; the
3000 per ten thousand between them is the wording, not the surgery, until every
patient is shown both.

Trace event types

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