Case 973
Her brother had it and her sons risk was one in four
her_brother_had_it_and_her_sons_risk_was_one_in_four.eml - A woman's brother and her mother's brother both have an X-linked recessive condition. She is unaffected, and so are her mother and father. She reasons that the condition shows up in the family's men, never its women, that nothing could have come through her unaffected father, and that her sons' risk is the population's, one boy in 5000. Her sons' real risk is computed below.
ok: true — round-trip fixpoint reached (python1 == python2)updated 2026-09-23
EML
eml# Self-authored for the EML case corpus (no external origin). A woman's brother
# and her mother's brother both have an X-linked recessive condition. She is
# unaffected, and so are her mother and father. She reasons that the condition
# shows up in the family's men, never its women, that nothing could have come
# through her unaffected father, and that her sons' risk is the population's,
# one boy in 5000. Her sons' real risk is computed below.
#
# The reasoning is careful. She really is unaffected; her father really is
# unaffected; the women of the family really do not show it; and the intent is
# exactly 'what is the risk for my sons'.
#
# The gene sits on the X, which women carry in two copies and men in one, so a
# woman with one altered copy is usually unaffected and passes it on. Her
# mother, the sister of one affected man and the mother of another, carries it.
# She received one of her mother's two X's - a carrier one time in two - and
# each son of a carrier inherits it one time in two: a risk of one in four for
# each son, 1250 times the population's.
5000 => boys_per_affected_boy_in_the_population
10000 => certainty_per_myriad
certainty_per_myriad => mother_is_a_carrier_per_myriad
int(mother_is_a_carrier_per_myriad / 2) => she_is_a_carrier_per_myriad
int(she_is_a_carrier_per_myriad / 2) => each_son_affected_per_myriad
0 => each_daughter_affected_per_myriad
int(she_is_a_carrier_per_myriad / 2) => each_daughter_a_carrier_per_myriad
int(certainty_per_myriad / boys_per_affected_boy_in_the_population) => population_son_risk_per_myriad
int(each_son_affected_per_myriad / population_son_risk_per_myriad) => times_the_population_risk
"population : 1 boy in " + str(boys_per_affected_boy_in_the_population) + " affected, " + str(population_son_risk_per_myriad) + " per ten thousand" ^0
"her mother : sister of one affected man, mother of another" ^0
" carrier : " + str(mother_is_a_carrier_per_myriad) + " per ten thousand" ^0
"she, one of her mother's two X's : carrier " + str(she_is_a_carrier_per_myriad) + " per ten thousand" ^0
"" ^0
"each son : affected " + str(each_son_affected_per_myriad) + " per ten thousand" ^0
"each daughter, unaffected father : affected " + str(each_daughter_affected_per_myriad) + ", a carrier " + str(each_daughter_a_carrier_per_myriad) + " per ten thousand" ^0
"each son vs the population : " + str(times_the_population_risk) + " times" ^0
"" ^0
# ---- what she verified ----
"the it-is-in-the-men reasoning" ^0
" herself : unaffected" ^0
" her father : unaffected, so nothing came through him" ^0
" the women of the family : none of them shows it" ^0
" intent : what is the risk for my sons" ^0
" facts wrong : 0" ^0
" verdict : MY SONS HAVE THE POPULATION'S RISK" ^0
"" ^0
" ruling out her father as a source is the part done right" ^0
" here, and it is why no copy could have reached her from his" ^0
" side" ^0
"" ^0
# ---- how the gene travels ----
"carried in two copies, shown in one" ^0
" where the gene sits : on the X; women have two, men one" ^0
" a woman with one altered copy : usually unaffected, because" ^0
" her other X covers for it, and a carrier all the same" ^0
" her mother : linked to two affected men, her brother and her" ^0
" son, through her own X's, a carrier " + str(mother_is_a_carrier_per_myriad) + " per ten thousand" ^0
" she : received one of her mother's two X's, a carrier " + str(she_is_a_carrier_per_myriad) ^0
" per ten thousand" ^0
" her sons : each takes one of her X's, affected " + str(each_son_affected_per_myriad) + " per ten" ^0
" thousand" ^0
" why the women look clear : they carry it without showing it" ^0
"" ^0
# ---- what she got ----
"the risk" ^0
" believed : " + str(population_son_risk_per_myriad) + " per ten thousand, the population's" ^0
" actual : " + str(each_son_affected_per_myriad) + " per ten thousand for each son, one in four" ^0
" is anyone in her family misdescribed : no; every unaffected" ^0
" person really is unaffected" ^0
" does unaffected mean not carrying it : not for an X-linked" ^0
" recessive gene in a woman" ^0
"" ^0
# ---- null control ----
# The same risk worked out by tracing her brother's X back through their mother
# instead of by reading it off the people who are unaffected.
2 => nc_son_risk_read_off_the_unaffected_per_myriad
2500 => nc_son_risk_tracing_the_x_per_myriad
2498 => nc_per_myriad_the_tracing_reveals
"null control - trace the X, not the symptoms" ^0
" son's risk, read off the unaffected : " + str(nc_son_risk_read_off_the_unaffected_per_myriad) + " per ten thousand" ^0
" son's risk, tracing the X : " + str(nc_son_risk_tracing_the_x_per_myriad) + " per ten thousand" ^0
" per ten thousand the tracing reveals : " + str(nc_per_myriad_the_tracing_reveals) ^0
" no one in the family changed; the gene was followed along the" ^0
" chromosome that carries it" ^0
"" ^0
# ---- the rule ----
"what an unaffected woman with an unaffected father guarantees" ^0
" nothing reached her from her father : exactly" ^0
" her sons carry the population's risk : not addressed; her mother" ^0
" carries the gene her brother has, she carries it " + str(she_is_a_carrier_per_myriad) + " per ten" ^0
" thousand, and each son is affected " + str(each_son_affected_per_myriad) + " per ten thousand, " + str(times_the_population_risk) ^0
" times the population's " + str(population_son_risk_per_myriad) ^0
"" ^0
"a gene that shows in only one sex travels through the other; the family's" ^0
"unaffected women are not where it stopped but where it waited" ^0
"" ^0
"She is unaffected and her father could not have passed it on - both true." ^0
"But the gene rides on the X: her mother carries it, she carries it " + str(she_is_a_carrier_per_myriad) + " per" ^0
"ten thousand, and each son inherits it " + str(each_son_affected_per_myriad) + " per ten thousand, " + str(times_the_population_risk) + " times the" ^0
"population's " + str(population_son_risk_per_myriad) + ", until the risk is traced along the X and not read off the symptoms." ^0Python (deterministic transpilation)
pythonboys_per_affected_boy_in_the_population = 5000
certainty_per_myriad = 10000
mother_is_a_carrier_per_myriad = certainty_per_myriad
she_is_a_carrier_per_myriad = int(mother_is_a_carrier_per_myriad / 2)
each_son_affected_per_myriad = int(she_is_a_carrier_per_myriad / 2)
each_daughter_affected_per_myriad = 0
each_daughter_a_carrier_per_myriad = int(she_is_a_carrier_per_myriad / 2)
population_son_risk_per_myriad = int(certainty_per_myriad / boys_per_affected_boy_in_the_population)
times_the_population_risk = int(each_son_affected_per_myriad / population_son_risk_per_myriad)
print("population : 1 boy in " + str(boys_per_affected_boy_in_the_population) + " affected, " + str(population_son_risk_per_myriad) + " per ten thousand")
print("her mother : sister of one affected man, mother of another")
print(" carrier : " + str(mother_is_a_carrier_per_myriad) + " per ten thousand")
print("she, one of her mother's two X's : carrier " + str(she_is_a_carrier_per_myriad) + " per ten thousand")
print("")
print("each son : affected " + str(each_son_affected_per_myriad) + " per ten thousand")
print("each daughter, unaffected father : affected " + str(each_daughter_affected_per_myriad) + ", a carrier " + str(each_daughter_a_carrier_per_myriad) + " per ten thousand")
print("each son vs the population : " + str(times_the_population_risk) + " times")
print("")
print("the it-is-in-the-men reasoning")
print(" herself : unaffected")
print(" her father : unaffected, so nothing came through him")
print(" the women of the family : none of them shows it")
print(" intent : what is the risk for my sons")
print(" facts wrong : 0")
print(" verdict : MY SONS HAVE THE POPULATION'S RISK")
print("")
print(" ruling out her father as a source is the part done right")
print(" here, and it is why no copy could have reached her from his")
print(" side")
print("")
print("carried in two copies, shown in one")
print(" where the gene sits : on the X; women have two, men one")
print(" a woman with one altered copy : usually unaffected, because")
print(" her other X covers for it, and a carrier all the same")
print(" her mother : linked to two affected men, her brother and her")
print(" son, through her own X's, a carrier " + str(mother_is_a_carrier_per_myriad) + " per ten thousand")
print(" she : received one of her mother's two X's, a carrier " + str(she_is_a_carrier_per_myriad))
print(" per ten thousand")
print(" her sons : each takes one of her X's, affected " + str(each_son_affected_per_myriad) + " per ten")
print(" thousand")
print(" why the women look clear : they carry it without showing it")
print("")
print("the risk")
print(" believed : " + str(population_son_risk_per_myriad) + " per ten thousand, the population's")
print(" actual : " + str(each_son_affected_per_myriad) + " per ten thousand for each son, one in four")
print(" is anyone in her family misdescribed : no; every unaffected")
print(" person really is unaffected")
print(" does unaffected mean not carrying it : not for an X-linked")
print(" recessive gene in a woman")
print("")
nc_son_risk_read_off_the_unaffected_per_myriad = 2
nc_son_risk_tracing_the_x_per_myriad = 2500
nc_per_myriad_the_tracing_reveals = 2498
print("null control - trace the X, not the symptoms")
print(" son's risk, read off the unaffected : " + str(nc_son_risk_read_off_the_unaffected_per_myriad) + " per ten thousand")
print(" son's risk, tracing the X : " + str(nc_son_risk_tracing_the_x_per_myriad) + " per ten thousand")
print(" per ten thousand the tracing reveals : " + str(nc_per_myriad_the_tracing_reveals))
print(" no one in the family changed; the gene was followed along the")
print(" chromosome that carries it")
print("")
print("what an unaffected woman with an unaffected father guarantees")
print(" nothing reached her from her father : exactly")
print(" her sons carry the population's risk : not addressed; her mother")
print(" carries the gene her brother has, she carries it " + str(she_is_a_carrier_per_myriad) + " per ten")
print(" thousand, and each son is affected " + str(each_son_affected_per_myriad) + " per ten thousand, " + str(times_the_population_risk))
print(" times the population's " + str(population_son_risk_per_myriad))
print("")
print("a gene that shows in only one sex travels through the other; the family's")
print("unaffected women are not where it stopped but where it waited")
print("")
print("She is unaffected and her father could not have passed it on - both true.")
print("But the gene rides on the X: her mother carries it, she carries it " + str(she_is_a_carrier_per_myriad) + " per")
print("ten thousand, and each son inherits it " + str(each_son_affected_per_myriad) + " per ten thousand, " + str(times_the_population_risk) + " times the")
print("population's " + str(population_son_risk_per_myriad) + ", until the risk is traced along the X and not read off the symptoms.")stdout (executed)
textpopulation : 1 boy in 5000 affected, 2 per ten thousand
her mother : sister of one affected man, mother of another
carrier : 10000 per ten thousand
she, one of her mother's two X's : carrier 5000 per ten thousand
each son : affected 2500 per ten thousand
each daughter, unaffected father : affected 0, a carrier 2500 per ten thousand
each son vs the population : 1250 times
the it-is-in-the-men reasoning
herself : unaffected
her father : unaffected, so nothing came through him
the women of the family : none of them shows it
intent : what is the risk for my sons
facts wrong : 0
verdict : MY SONS HAVE THE POPULATION'S RISK
ruling out her father as a source is the part done right
here, and it is why no copy could have reached her from his
side
carried in two copies, shown in one
where the gene sits : on the X; women have two, men one
a woman with one altered copy : usually unaffected, because
her other X covers for it, and a carrier all the same
her mother : linked to two affected men, her brother and her
son, through her own X's, a carrier 10000 per ten thousand
she : received one of her mother's two X's, a carrier 5000
per ten thousand
her sons : each takes one of her X's, affected 2500 per ten
thousand
why the women look clear : they carry it without showing it
the risk
believed : 2 per ten thousand, the population's
actual : 2500 per ten thousand for each son, one in four
is anyone in her family misdescribed : no; every unaffected
person really is unaffected
does unaffected mean not carrying it : not for an X-linked
recessive gene in a woman
null control - trace the X, not the symptoms
son's risk, read off the unaffected : 2 per ten thousand
son's risk, tracing the X : 2500 per ten thousand
per ten thousand the tracing reveals : 2498
no one in the family changed; the gene was followed along the
chromosome that carries it
what an unaffected woman with an unaffected father guarantees
nothing reached her from her father : exactly
her sons carry the population's risk : not addressed; her mother
carries the gene her brother has, she carries it 5000 per ten
thousand, and each son is affected 2500 per ten thousand, 1250
times the population's 2
a gene that shows in only one sex travels through the other; the family's
unaffected women are not where it stopped but where it waited
She is unaffected and her father could not have passed it on - both true.
But the gene rides on the X: her mother carries it, she carries it 5000 per
ten thousand, and each son inherits it 2500 per ten thousand, 1250 times the
population's 2, until the risk is traced along the X and not read off the symptoms.Trace event types
eml:run:starteml:assigneml:outputeml:run:done