The named source — the Antithrombotic Trialists' Collaboration meta-analysis — does report exactly what the claim says, and the evidence behind it is the strongest kind medicine has.
What Was Claimed?
The claim has two parts wrapped together. First, a medical statement: people who already have heart or vascular disease, and who take a daily low dose of aspirin, are less likely to have another non-fatal heart attack. Second, an attribution: this finding comes from a specific, famous body of research — the Antithrombotic Trialists' Collaboration, an academic group that has pooled the world's aspirin trials into large meta-analyses.
This matters because aspirin for the heart is one of the most widely used preventive treatments in the world, and because the claim points to a particular evidence source rather than just asserting a general belief. Checking it means checking both whether the effect is real and whether that source actually says so.
What Did We Find?
The word "reduces" is a cause-and-effect word, so the claim was split into two questions that both had to be answered yes. Is aspirin linked to fewer repeat heart attacks in these patients? And is that link genuinely causal, rather than a coincidence?
On the first question, the Collaboration's 2002 analysis — which pooled 287 trials and roughly 135,000 high-risk patients — found that among those patients, non-fatal heart attacks were cut by about one third. The same analysis confirmed that low doses of aspirin, in the familiar 75–150 mg range, worked at least as well as higher doses, so the finding applies to ordinary "low-dose" aspirin and not just to large doses. The Collaboration's later 2009 analysis, looking specifically at patients who already had vascular disease, independently confirmed the direction: aspirin produced a clear reduction in serious vascular events.
On the second question, the answer comes from how the research was built. The Collaboration only pooled randomized controlled trials — studies where patients are assigned aspirin or no aspirin by chance. Random assignment is what lets researchers say a treatment caused a difference rather than merely accompanied it. Both the 2002 and 2009 analyses are explicitly built from randomized trials, so the reduction is causal evidence, not just correlation.
Every quotation used was pulled directly from the original published papers, hosted on U.S. National Institutes of Health websites, and checked word-for-word. All five checked out. Counter-arguments were also tested: aspirin's well-known bleeding risk, recent debate about whether aspirin still matters as much in an era of statins and stents, and the question of whether "recurrent" was a fair word. None of them overturned the finding — they qualify how aspirin is used today, but not whether the Collaboration found this reduction.
What Should You Keep In Mind?
This proof confirms a narrow, specific thing: that the Antithrombotic Trialists' Collaboration meta-analysis found low-dose aspirin reduces recurrent non-fatal heart attacks in people with established cardiovascular disease. It is not a verdict that aspirin is the best choice for every such patient today. Aspirin also increases the risk of serious bleeding, and newer drugs and treatments have changed the picture — whether aspirin's benefit outweighs its risks for any individual is a separate clinical question this proof does not answer. The finding is also strong precisely for secondary prevention (people who already have disease); aspirin for primary prevention in healthy people is a genuinely contested area and is outside this claim. Anyone making a personal decision about aspirin should talk to a doctor.
How Was This Verified?
The claim was decomposed into an association part and a causation part, each backed by verbatim quotations fetched live from the original journal articles and confirmed character-for-character; counter-evidence was searched for and weighed. You can read the structured proof report, inspect the full verification audit, or re-run the proof yourself.
What could challenge this verdict?
Five independent counter-evidence checks were run during research; none broke the proof.
Is the attribution accurate? The claim names a specific source, so the first check was whether the ATT meta-analysis actually reports this. Both ATT papers were fetched and read directly: the 2002 BMJ overview states the one-third non-fatal-MI reduction explicitly, and the 2009 Lancet paper confirms reduced serious vascular and coronary events in secondary prevention. The attribution is accurate.
Does aspirin's bleeding harm contradict the finding? Aspirin increases major gastrointestinal and extracranial bleeding — a real, separate harm. But the claim concerns the non-fatal-MI outcome specifically, not net clinical benefit. The 2002 ATT overview itself reports that in high-risk categories "the absolute benefits substantially outweighed the absolute risks of major extracranial bleeding." Bleeding is a treatment trade-off, not evidence against the MI-reduction finding.
Has more recent evidence overturned the finding? Recent (2020–2025) commentary debates whether aspirin's marginal benefit is as large in the modern era of statins and revascularization, and notes newer P2Y12 inhibitors as alternatives. But a 2025 systematic review and meta-analysis still found aspirin reduced recurrent events by roughly a fifth in secondary prevention. No source claims the ATT finding was wrong or reversed; only its magnitude and role relative to newer drugs are debated.
Does "low-dose" specifically carry the effect? The 2002 ATT overview found 75–150 mg daily at least as effective as higher doses, and the 2009 ATT meta-analysis is explicitly an analysis of low-dose aspirin. The 2002 paper notes effects of doses below 75 mg are "less certain," but standard low-dose aspirin (75–150 mg) sits squarely within the supported range.
Is "recurrent" MI supported? The ATT meta-analysis includes an explicit "previous myocardial infarction" patient category — six prior-MI secondary-prevention trials in the 2009 analysis — in which any subsequent non-fatal MI is by definition recurrent. The proof interprets "recurrent non-fatal MI in patients with prior cardiovascular disease" as non-fatal MI events within the established-disease population the ATT analyzed; this interpretation is documented and does not overstate the source.
Proof Logic
The claim attributes a causal effect ("reduces the risk") to a specific named evidence source ("the Antithrombotic Trialists' Collaboration meta-analysis"). The proof therefore did two things: confirmed that the named source reports the effect, and confirmed that the source's design supports a causal — not merely correlational — reading.
SC1 — Association: low-dose aspirin and reduced non-fatal MI in prior-CVD patients
The ATT Collaboration's 2002 BMJ collaborative overview pooled 287 randomized trials covering roughly 135,000 high-risk patients — defined as patients with acute or previous occlusive vascular disease, i.e. the secondary-prevention population. Among those patients, "non-fatal myocardial infarction was reduced by one third" under antiplatelet therapy (B1). Because the claim specifies low-dose aspirin, the proof also confirmed that the same overview found aspirin "the most widely studied antiplatelet drug, with doses of 75-150 mg daily at least as effective as higher daily doses" (B2) — so the one-third reduction applies to standard low-dose aspirin, not only to higher doses or to other antiplatelet agents.
The ATT Collaboration's later 2009 Lancet meta-analysis, which pooled individual participant data from 16 secondary-prevention trials (about 17,000 patients with prior vascular disease, including six trials of patients with previous myocardial infarction), independently confirmed the direction: "in the secondary prevention trials, aspirin allocation yielded a greater absolute reduction in serious vascular events" (B3), a category the paper defines as myocardial infarction, stroke, or vascular death. SC1 required at least 2 verified ATT sources and obtained 3 (A1), so SC1 holds.
SC2 — Causation: the reduction rests on randomized controlled trials
An association alone would not establish that aspirin reduces risk rather than merely co-occurring with lower risk. The ATT meta-analyses settle this by design: they pool only randomized controlled trials. The 2002 BMJ overview restricted inclusion to "Randomised trials of an antiplatelet regimen versus control or of one antiplatelet regimen versus another in high risk patients" (B4), and required that comparisons be unconfounded. The 2009 Lancet paper is, by its own title, "a collaborative meta-analysis of individual participant data from randomised trials" (B5). Random allocation removes systematic confounding, so a reduction observed consistently across pooled randomized trials supports a causal interpretation — this is the gold-standard evidence class for causal inference. SC2 required at least 2 verified ATT sources and obtained 2 (A2), so SC2 holds.
Compound result
Both sub-claims hold (2 of 2). Under the AND operator, the compound causal claim is established: the ATT Collaboration meta-analysis reports that daily low-dose aspirin reduces the risk of recurrent non-fatal myocardial infarction in patients with prior cardiovascular disease.
The named source — the Antithrombotic Trialists' Collaboration meta-analysis — does report exactly what the claim says, and the evidence behind it is the strongest kind medicine has.
What Was Claimed?
The claim has two parts wrapped together. First, a medical statement: people who already have heart or vascular disease, and who take a daily low dose of aspirin, are less likely to have another non-fatal heart attack. Second, an attribution: this finding comes from a specific, famous body of research — the Antithrombotic Trialists' Collaboration, an academic group that has pooled the world's aspirin trials into large meta-analyses.
This matters because aspirin for the heart is one of the most widely used preventive treatments in the world, and because the claim points to a particular evidence source rather than just asserting a general belief. Checking it means checking both whether the effect is real and whether that source actually says so.
What Did We Find?
The word "reduces" is a cause-and-effect word, so the claim was split into two questions that both had to be answered yes. Is aspirin linked to fewer repeat heart attacks in these patients? And is that link genuinely causal, rather than a coincidence?
On the first question, the Collaboration's 2002 analysis — which pooled 287 trials and roughly 135,000 high-risk patients — found that among those patients, non-fatal heart attacks were cut by about one third. The same analysis confirmed that low doses of aspirin, in the familiar 75–150 mg range, worked at least as well as higher doses, so the finding applies to ordinary "low-dose" aspirin and not just to large doses. The Collaboration's later 2009 analysis, looking specifically at patients who already had vascular disease, independently confirmed the direction: aspirin produced a clear reduction in serious vascular events.
On the second question, the answer comes from how the research was built. The Collaboration only pooled randomized controlled trials — studies where patients are assigned aspirin or no aspirin by chance. Random assignment is what lets researchers say a treatment caused a difference rather than merely accompanied it. Both the 2002 and 2009 analyses are explicitly built from randomized trials, so the reduction is causal evidence, not just correlation.
Every quotation used was pulled directly from the original published papers, hosted on U.S. National Institutes of Health websites, and checked word-for-word. All five checked out. Counter-arguments were also tested: aspirin's well-known bleeding risk, recent debate about whether aspirin still matters as much in an era of statins and stents, and the question of whether "recurrent" was a fair word. None of them overturned the finding — they qualify how aspirin is used today, but not whether the Collaboration found this reduction.
What Should You Keep In Mind?
This proof confirms a narrow, specific thing: that the Antithrombotic Trialists' Collaboration meta-analysis found low-dose aspirin reduces recurrent non-fatal heart attacks in people with established cardiovascular disease. It is not a verdict that aspirin is the best choice for every such patient today. Aspirin also increases the risk of serious bleeding, and newer drugs and treatments have changed the picture — whether aspirin's benefit outweighs its risks for any individual is a separate clinical question this proof does not answer. The finding is also strong precisely for secondary prevention (people who already have disease); aspirin for primary prevention in healthy people is a genuinely contested area and is outside this claim. Anyone making a personal decision about aspirin should talk to a doctor.
How Was This Verified?
The claim was decomposed into an association part and a causation part, each backed by verbatim quotations fetched live from the original journal articles and confirmed character-for-character; counter-evidence was searched for and weighed. You can read the structured proof report, inspect the full verification audit, or re-run the proof yourself.
Before any verdict ships, the engine runs adversarial searches for evidence that could break the proof. 5 were run here.
| subject | Daily low-dose aspirin and recurrent non-fatal myocardial infarction in patients with prior cardiovascular disease, as assessed by the Antithrombotic Trialists' (ATT) Collaboration meta-analyses |
|---|---|
| threshold | |
| note | The claim uses causal language ('reduces the risk'), so it is decomposed into an association sub-claim (SC1) and a causation sub-claim (SC2); both must hold for a PROVED verdict (compound_operator AND). The claim is explicitly attributed to 'the Antithrombotic Trialists' Collaboration meta-analysis', so the proof evaluates it against the ATT Collaboration's own publications: the 2002 BMJ collaborative overview of antiplatelet therapy in high-risk patients and the 2009 Lancet individual-participant-data meta-analysis of aspirin in primary and secondary prevention. 'Patients with prior cardiovascular disease' is interpreted as the secondary-prevention / high-risk population the ATT analyses studied (acute or previous occlusive vascular disease). 'Recurrent non-fatal myocardial infarction' is interpreted as non-fatal MI events occurring within that established-disease population; the ATT analyses include an explicit 'previous myocardial infarction' patient category in which any subsequent non-fatal MI is unambiguously recurrent. 'Low-dose aspirin' is interpreted as the 75-150 mg/day range the ATT 2002 analysis found 'at least as effective as higher daily doses'. Source-count thresholds are set to 2 (not the default 3): by construction the claim restricts the evidence base to one named source program (the ATT Collaboration meta-analysis), which produced exactly two landmark meta-analyses on this question -- both peer-reviewed in top-tier journals (BMJ, Lancet), each pooling large randomized-trial datasets, and funded by public/charitable bodies (UK Medical Research Council, British Heart Foundation, Cancer Research UK, EC Biomed) with no aspirin-manufacturer funding. No conflict of interest favoring the claim was identified. |
| sub-claims | SC1 |
| SC2 |
SC1 (association): verified ATT sources: 3 >= 2 = True
SC2 (causation): verified ATT sources: 2 >= 2 = True
compound: all sub-claims hold: 2 == 2 = True
Source: proof.py inline output (execution trace).
Five independent counter-evidence checks were run during research; none broke the proof.
Is the attribution accurate? The claim names a specific source, so the first check was whether the ATT meta-analysis actually reports this. Both ATT papers were fetched and read directly: the 2002 BMJ overview states the one-third non-fatal-MI reduction explicitly, and the 2009 Lancet paper confirms reduced serious vascular and coronary events in secondary prevention. The attribution is accurate.
Does aspirin's bleeding harm contradict the finding? Aspirin increases major gastrointestinal and extracranial bleeding — a real, separate harm. But the claim concerns the non-fatal-MI outcome specifically, not net clinical benefit. The 2002 ATT overview itself reports that in high-risk categories "the absolute benefits substantially outweighed the absolute risks of major extracranial bleeding." Bleeding is a treatment trade-off, not evidence against the MI-reduction finding.
Has more recent evidence overturned the finding? Recent (2020–2025) commentary debates whether aspirin's marginal benefit is as large in the modern era of statins and revascularization, and notes newer P2Y12 inhibitors as alternatives. But a 2025 systematic review and meta-analysis still found aspirin reduced recurrent events by roughly a fifth in secondary prevention. No source claims the ATT finding was wrong or reversed; only its magnitude and role relative to newer drugs are debated.
Does "low-dose" specifically carry the effect? The 2002 ATT overview found 75–150 mg daily at least as effective as higher doses, and the 2009 ATT meta-analysis is explicitly an analysis of low-dose aspirin. The 2002 paper notes effects of doses below 75 mg are "less certain," but standard low-dose aspirin (75–150 mg) sits squarely within the supported range.
Is "recurrent" MI supported? The ATT meta-analysis includes an explicit "previous myocardial infarction" patient category — six prior-MI secondary-prevention trials in the 2009 analysis — in which any subsequent non-fatal MI is by definition recurrent. The proof interprets "recurrent non-fatal MI in patients with prior cardiovascular disease" as non-fatal MI events within the established-disease population the ATT analyzed; this interpretation is documented and does not overstate the source.
audit trail · Detailed Evidence
All 5 citations verified.
Original audit log
B1 — ATT 2002 BMJ, non-fatal MI reduction - Status: verified - Method: full_quote (exact verbatim substring match; coverage_pct not applicable) - Fetch mode: live - Verbatim status: verbatim quote (declared default)
B2 — ATT 2002 BMJ, low-dose equivalence - Status: verified - Method: full_quote - Fetch mode: live - Verbatim status: verbatim quote
B3 — ATT 2009 Lancet, secondary-prevention reduction
- Status: verified
- Method: full_quote
- Fetch mode: live
- Verbatim status: verbatim quote (copied from the PubMed abstract page; the verified substring stops before the journal's middle-dot decimal and <-encoded p-values to avoid Unicode/entity ambiguity)
B4 — ATT 2002 BMJ, randomised-trial inclusion criteria - Status: verified - Method: full_quote - Fetch mode: live - Verbatim status: verbatim quote
B5 — ATT 2009 Lancet, individual participant data from randomised trials - Status: verified - Method: full_quote - Fetch mode: live - Verbatim status: verbatim quote (substring of the article title as printed on the PubMed page)
All five citations verified on the recorded execution (fetch mode live for each). No citation is unverified, so no conclusion in proof.md depends on unverified evidence.
Snapshot fallback. PubMed Central is a known bot-throttling domain, and during verification one transient live-fetch failure was observed on a single PMC citation. To make the verdict robust against such intermittent blocks, each citation carries a bundled offline snapshot of its source page, captured 2026-05-20 (snapshots/pmc64503.html for the 2002 BMJ paper, snapshots/pubmed19482214.html for the 2009 Lancet abstract). The verifier uses the fallback chain live → snapshot → Wayback; a separate test forcing every live fetch to fail confirmed all five citations still verify verbatim against the snapshots (status verified, fetch mode snapshot). The verdict therefore does not depend on live network conditions at re-run time.
Source: proof.py JSON summary citations; snapshot-fallback test is author analysis.
| Field | Value |
|---|---|
| Subject | Daily low-dose aspirin and recurrent non-fatal MI in patients with prior CVD, as assessed by the ATT Collaboration meta-analyses |
| Compound operator | AND (both sub-claims must hold) |
| SC1 | Association: low-dose aspirin associated with reduced non-fatal MI in prior-CVD patients — operator >=, threshold 2 |
| SC2 | Causation: ATT meta-analysis pools randomized controlled trials — operator >=, threshold 2 |
| Time-sensitive | No |
| Proof direction | Affirmative (prove) |
Source: proof.py JSON summary claim_formal.
The natural-language claim is: "Daily low-dose aspirin reduces the risk of recurrent non-fatal myocardial infarction in patients with prior cardiovascular disease, per the Antithrombotic Trialists' Collaboration meta-analysis."
The claim uses causal language ("reduces the risk"). Under the Proof Engine's causal rule, a causal claim must be decomposed into an association sub-claim and a causation sub-claim; the operator_note may not redefine the claim as merely associational to avoid this. The formal interpretation is therefore a compound (AND) claim with two sub-claims:
- SC1 (association): The Antithrombotic Trialists' (ATT) Collaboration meta-analysis found daily low-dose aspirin associated with a reduction in non-fatal myocardial infarction (MI) among patients with prior cardiovascular disease (CVD). Operator: count of verified ATT-source quotations
>=2. - SC2 (causation): The ATT meta-analysis pools randomized controlled trials (RCTs), so the observed reduction has a causal — not merely correlational — basis. Operator: count of verified ATT-source quotations
>=2.
Both sub-claims must hold for a PROVED verdict.
The source-count threshold is 2 rather than the default 3. This reduction is justified under the Proof Engine's threshold-2 conditions: (1) domain scarcity — the claim explicitly restricts the evidence base to one named source program, the ATT Collaboration meta-analysis, and the ATT Collaboration produced exactly two landmark meta-analyses bearing on this question (the 2002 BMJ collaborative overview and the 2009 Lancet individual-participant-data meta-analysis); (2) source quality — both are peer-reviewed in top-tier journals and each pools large randomized-trial datasets (≈135,000 and ≈17,000 patients respectively), well above any per-domain minimum; (3) no majority conflict of interest — the ATT Collaboration is an independent academic consortium funded by the UK Medical Research Council, British Heart Foundation, Cancer Research UK, and the EC Biomed Programme, with no aspirin-manufacturer funding; (4) the rationale is documented in CLAIM_FORMAL.operator_note.
Formalization scope. The formal interpretation operationalizes three natural-language terms, each documented in operator_note:
- "Patients with prior cardiovascular disease" is interpreted as the secondary-prevention / high-risk population the ATT analyses studied (acute or previous occlusive vascular disease).
- "Recurrent non-fatal myocardial infarction" is interpreted as non-fatal MI events occurring within that established-disease population. The ATT analyses include an explicit "previous myocardial infarction" patient category in which any subsequent non-fatal MI is unambiguously recurrent; for the broader prior-CVD population the proof treats non-fatal MI as a recurrent vascular event because the population already has established disease.
- "Low-dose aspirin" is interpreted as the 75–150 mg/day range the 2002 ATT overview found "at least as effective as higher daily doses."
These are operationalizations of an otherwise faithful mapping; no element of the natural-language claim is excluded. The phrase "per the Antithrombotic Trialists' Collaboration meta-analysis" is treated as an attribution constraint and is satisfied by evaluating the claim directly against the ATT Collaboration's own publications.
Source: proof.py JSON summary claim_formal and claim_natural.
| Fact ID | Domain | Type | Note |
|---|---|---|---|
| B1 | nih.gov | Government | PubMed Central, full text of the 2002 BMJ paper; credibility tier 5/5 |
| B2 | nih.gov | Government | PubMed Central, full text of the 2002 BMJ paper; credibility tier 5/5 |
| B3 | nih.gov | Government | PubMed abstract index, 2009 Lancet paper; credibility tier 5/5 |
| B4 | nih.gov | Government | PubMed Central, full text of the 2002 BMJ paper; credibility tier 5/5 |
| B5 | nih.gov | Government | PubMed abstract index, 2009 Lancet paper; credibility tier 5/5 |
All sources are government-hosted (U.S. National Institutes of Health) reproductions of peer-reviewed articles. No source is flagged unreliable; no source falls at credibility tier 2 or below.
Source: proof.py JSON summary citations[].credibility.
SC1 (association): verified ATT sources: 3 >= 2 = True
SC2 (causation): verified ATT sources: 2 >= 2 = True
compound: all sub-claims hold: 2 == 2 = True
Source: proof.py inline output (execution trace).
SC1 cross-check — 3 sources consulted, 3 verified, agreement: holds. SC1 draws on two distinct ATT meta-analyses published seven years apart in different journals (BMJ 2002, Lancet 2009) using different methods (tabular data versus individual participant data) and overlapping but non-identical trial sets. B1 and B2 are two distinct findings from the 2002 BMJ paper (the non-fatal-MI reduction and the low-dose equivalence); B3 is from the independent 2009 Lancet meta-analysis.
SC2 cross-check — 2 sources consulted, 2 verified, agreement: holds. SC2 is confirmed by both ATT publications independently: the 2002 BMJ paper restricts inclusion to randomised trials, and the 2009 Lancet paper is a meta-analysis of individual participant data from randomised trials. Two separate publications each document the randomized-controlled-trial basis.
Conflict-of-interest assessment (coi_flags). Both sub-claims carry an explicit coi_flags field, each an empty list. The ATT Collaboration is an independent academic consortium; its funders (UK Medical Research Council, British Heart Foundation, Cancer Research UK, EC Biomed Programme) include no aspirin manufacturer, so there is no funding-dependency COI. The collaboration's 2009 Lancet paper concluded that aspirin is "of uncertain net value" in primary prevention — evidence that it reports null and negative findings and is not biased toward a pro-aspirin verdict. One independence limitation is noted transparently rather than as a COI: the claim names the ATT meta-analysis as its source, so all primary evidence necessarily comes from ATT publications; the proof mitigates this by using two distinct ATT meta-analyses and by cross-referencing the broader independent literature in the adversarial checks below. No majority COI exists; the COI override does not fire.
Source: proof.py JSON summary cross_checks.
- Rule 1 (no hand-typed values): N/A — qualitative source-counting proof; no numeric values parsed from quotes. Validator: no value-extraction patterns detected.
- Rule 2 (citations verified by fetching): Pass — all five citations fetched live and verified verbatim via
verify_all_citations(); each also carries a bundled offline snapshot as a verified fallback. - Rule 3 (anchor to system time): N/A — claim is not time-sensitive (
is_time_sensitive: False); no date-dependent logic. - Rule 4 (explicit claim interpretation): Pass —
CLAIM_FORMALwithoperator_notedocuments the causal decomposition, the term operationalizations, and the threshold-2 rationale. - Rule 5 (independent adversarial check): Pass — five counter-evidence checks, performed via web search and direct source reading; none breaks the proof.
- Rule 6 (independent cross-checks): Pass — two distinct ATT meta-analyses (different journals, methods, trial sets);
coi_flagsassessed (empty, no aspirin-manufacturer funding). - Rule 7 (no hard-coded constants/formulas): Pass —
compare()andapply_verdict_qualifier()imported fromcomputations.py; noeval()or hard-coded constants. - validate_proof.py result: PASS — 21/21 checks passed, 0 issues, 0 warnings.
This is a qualitative/source-counting proof — no numeric values are parsed from quotes. The extractions field records citation verification status per source instead of extracted values.
| Fact ID | Verification status | Counted toward sub-claim | Quote snippet |
|---|---|---|---|
| B1 | verified | Yes (SC1) | Overall, among these high risk patients, allocation to antiplatelet… |
| B2 | verified | Yes (SC1) | Aspirin was the most widely studied antiplatelet drug, with doses of 75-150 mg… |
| B3 | verified | Yes (SC1) | In the secondary prevention trials, aspirin allocation yielded a greater… |
| B4 | verified | Yes (SC2) | Randomised trials of an antiplatelet regimen versus control or of one… |
| B5 | verified | Yes (SC2) | collaborative meta-analysis of individual participant data from randomised trials |
Extraction method (author analysis): No value extraction was performed. Each fact is established by verbatim citation presence; verify_all_citations() confirmed each quote is an exact substring of the fetched source page after HTML stripping and Unicode normalization. SC1 and SC2 source counts (A1, A2) were computed by counting facts whose verification status is verified or partial.
Source: proof.py JSON summary extractions; extraction-method narrative is author analysis.
| ID | Fact | Verified |
|---|---|---|
| B1 | ATT 2002 BMJ overview: among high-risk patients, non-fatal myocardial infarction was reduced by about one third | Yes |
| B2 | ATT 2002 BMJ overview: low-dose aspirin (75–150 mg daily) at least as effective as higher daily doses | Yes |
| B3 | ATT 2009 Lancet meta-analysis: in secondary-prevention trials, aspirin produced a greater absolute reduction in serious vascular events | Yes |
| B4 | ATT 2002 BMJ overview: inclusion restricted to randomised trials of an antiplatelet regimen versus control | Yes |
| B5 | ATT 2009 Lancet meta-analysis: a collaborative meta-analysis of individual participant data from randomised trials | Yes |
| A1 | SC1 (association) verified ATT source count | Computed: 3 ATT sources verified (threshold: 2) |
| A2 | SC2 (causation) verified ATT source count | Computed: 2 ATT sources verified (threshold: 2) |
All five empirical citations were fetched live and verified verbatim against government-hosted pages (PubMed Central and PubMed, both nih.gov, credibility tier 5/5).
Cite this proof
Proof Engine. (2026). Claim Verification: “Daily low-dose aspirin reduces the risk of recurrent non-fatal myocardial infarction in patients with prior cardiovascular disease, per the Antithrombotic Trialists' Collaboration meta-analysis.” — Proved. https://doi.org/10.5281/zenodo.20315066
Proof Engine. "Claim Verification: “Daily low-dose aspirin reduces the risk of recurrent non-fatal myocardial infarction in patients with prior cardiovascular disease, per the Antithrombotic Trialists' Collaboration meta-analysis.” — Proved." 2026. https://doi.org/10.5281/zenodo.20315066.
@misc{proofengine_daily_low_dose_aspirin_reduces_the_risk_of_recurrent_non_fatal_myocardial,
title = {Claim Verification: “Daily low-dose aspirin reduces the risk of recurrent non-fatal myocardial infarction in patients with prior cardiovascular disease, per the Antithrombotic Trialists' Collaboration meta-analysis.” — Proved},
author = {{Proof Engine}},
year = {2026},
url = {https://proofengine.info/proofs/daily-low-dose-aspirin-reduces-the-risk-of-recurrent-non-fatal-myocardial/},
note = {Verdict: PROVED. Generated by proof-engine v1.34.1},
doi = {10.5281/zenodo.20315066},
}TY - DATA TI - Claim Verification: “Daily low-dose aspirin reduces the risk of recurrent non-fatal myocardial infarction in patients with prior cardiovascular disease, per the Antithrombotic Trialists' Collaboration meta-analysis.” — Proved AU - Proof Engine PY - 2026 UR - https://proofengine.info/proofs/daily-low-dose-aspirin-reduces-the-risk-of-recurrent-non-fatal-myocardial/ N1 - Verdict: PROVED. Generated by proof-engine v1.34.1 DO - 10.5281/zenodo.20315066 ER -
View proof source
This is the exact proof.py that was deposited to Zenodo and runs when you re-execute via Binder. Every fact in the verdict above traces to code below.
"""
Proof: "Daily low-dose aspirin reduces the risk of recurrent non-fatal
myocardial infarction in patients with prior cardiovascular disease, per the
Antithrombotic Trialists' Collaboration meta-analysis."
Claim type: compound / causal. The claim uses causal language ("reduces the
risk"), so per the Proof Engine causal rule it is decomposed into an
association sub-claim (SC1) and a causation sub-claim (SC2).
Generated: 2026-05-20
"""
import os
import sys
PROOF_ENGINE_ROOT = os.environ.get("PROOF_ENGINE_ROOT")
if not PROOF_ENGINE_ROOT:
_d = os.path.dirname(os.path.abspath(__file__))
while _d != os.path.dirname(_d):
if os.path.isdir(os.path.join(_d, "proof-engine", "skills", "proof-engine", "scripts")):
PROOF_ENGINE_ROOT = os.path.join(_d, "proof-engine", "skills", "proof-engine")
break
_d = os.path.dirname(_d)
if not PROOF_ENGINE_ROOT:
raise RuntimeError("PROOF_ENGINE_ROOT not set and skill dir not found via walk-up from proof.py")
sys.path.insert(0, PROOF_ENGINE_ROOT)
from scripts.verify_citations import verify_all_citations
from scripts.computations import compare, apply_verdict_qualifier
from scripts.proof_summary import ProofSummaryBuilder
# ---------------------------------------------------------------------------
# 1. CLAIM INTERPRETATION (Rule 4)
# ---------------------------------------------------------------------------
CLAIM_NATURAL = (
"Daily low-dose aspirin reduces the risk of recurrent non-fatal myocardial "
"infarction in patients with prior cardiovascular disease, per the "
"Antithrombotic Trialists' Collaboration meta-analysis."
)
CLAIM_FORMAL = {
"subject": (
"Daily low-dose aspirin and recurrent non-fatal myocardial infarction in "
"patients with prior cardiovascular disease, as assessed by the "
"Antithrombotic Trialists' (ATT) Collaboration meta-analyses"
),
"is_time_sensitive": False,
"sub_claims": [
{
"id": "SC1",
"property": (
"The ATT Collaboration meta-analysis found daily low-dose aspirin "
"associated with a reduction in non-fatal myocardial infarction "
"among patients with prior cardiovascular disease"
),
"operator": ">=",
"threshold": 2,
"operator_note": (
"SC1 (association) holds when at least 2 verified quotations from "
"the ATT meta-analysis publications report that low-dose aspirin / "
"antiplatelet therapy is associated with a reduction in non-fatal "
"myocardial infarction (or the coronary-event composite that "
"includes non-fatal MI) among patients with prior cardiovascular "
"disease."
),
},
{
"id": "SC2",
"property": (
"The ATT Collaboration meta-analysis pools randomized controlled "
"trials, giving the observed reduction a causal (not merely "
"associational) basis"
),
"operator": ">=",
"threshold": 2,
"operator_note": (
"SC2 (causation) holds when at least 2 verified quotations "
"establish that the ATT meta-analysis pools randomized controlled "
"trials. Random allocation removes confounding, so a reduction "
"observed consistently across pooled RCTs supports a causal "
"interpretation -- this meets the Proof Engine's gold-standard "
"criterion for SC-causation (RCTs / controlled experiments)."
),
},
],
"compound_operator": "AND",
"operator_note": (
"The claim uses causal language ('reduces the risk'), so it is decomposed "
"into an association sub-claim (SC1) and a causation sub-claim (SC2); both "
"must hold for a PROVED verdict (compound_operator AND). The claim is "
"explicitly attributed to 'the Antithrombotic Trialists' Collaboration "
"meta-analysis', so the proof evaluates it against the ATT Collaboration's "
"own publications: the 2002 BMJ collaborative overview of antiplatelet "
"therapy in high-risk patients and the 2009 Lancet individual-participant-"
"data meta-analysis of aspirin in primary and secondary prevention. "
"'Patients with prior cardiovascular disease' is interpreted as the "
"secondary-prevention / high-risk population the ATT analyses studied "
"(acute or previous occlusive vascular disease). 'Recurrent non-fatal "
"myocardial infarction' is interpreted as non-fatal MI events occurring "
"within that established-disease population; the ATT analyses include an "
"explicit 'previous myocardial infarction' patient category in which any "
"subsequent non-fatal MI is unambiguously recurrent. 'Low-dose aspirin' is "
"interpreted as the 75-150 mg/day range the ATT 2002 analysis found 'at "
"least as effective as higher daily doses'. Source-count thresholds are "
"set to 2 (not the default 3): by construction the claim restricts the "
"evidence base to one named source program (the ATT Collaboration "
"meta-analysis), which produced exactly two landmark meta-analyses on this "
"question -- both peer-reviewed in top-tier journals (BMJ, Lancet), each "
"pooling large randomized-trial datasets, and funded by public/charitable "
"bodies (UK Medical Research Council, British Heart Foundation, Cancer "
"Research UK, EC Biomed) with no aspirin-manufacturer funding. No conflict "
"of interest favoring the claim was identified."
),
}
# ---------------------------------------------------------------------------
# 2. FACT REGISTRY (report IDs -> proof-script keys)
# ---------------------------------------------------------------------------
FACT_REGISTRY = {
"B1": {"key": "sc1_att2002_mi",
"label": "SC1 - ATT 2002 BMJ: non-fatal MI reduced by one third in high-risk patients"},
"B2": {"key": "sc1_att2002_dose",
"label": "SC1 - ATT 2002 BMJ: low-dose aspirin (75-150 mg) at least as effective as higher doses"},
"B3": {"key": "sc1_att2009",
"label": "SC1 - ATT 2009 Lancet: aspirin reduces serious vascular events in secondary-prevention trials"},
"B4": {"key": "sc2_att2002",
"label": "SC2 - ATT 2002 BMJ: inclusion restricted to randomised trials"},
"B5": {"key": "sc2_att2009",
"label": "SC2 - ATT 2009 Lancet: meta-analysis of individual participant data from randomised trials"},
"A1": {"label": "SC1 verified source count", "method": None, "result": None},
"A2": {"label": "SC2 verified source count", "method": None, "result": None},
}
# ---------------------------------------------------------------------------
# 3. EMPIRICAL FACTS (grouped by sub-claim via the sc1_ / sc2_ key prefix)
# ---------------------------------------------------------------------------
_PMC_2002 = "https://pmc.ncbi.nlm.nih.gov/articles/PMC64503/"
_PUBMED_2009 = "https://pubmed.ncbi.nlm.nih.gov/19482214/"
_SRC_2002 = ("Antithrombotic Trialists' Collaboration. Collaborative meta-analysis of "
"randomised trials of antiplatelet therapy for prevention of death, "
"myocardial infarction, and stroke in high risk patients. BMJ "
"2002;324:71-86 (full text via PubMed Central, PMC64503).")
_SRC_2009 = ("Antithrombotic Trialists' (ATT) Collaboration. Aspirin in the primary and "
"secondary prevention of vascular disease: collaborative meta-analysis of "
"individual participant data from randomised trials. Lancet "
"2009;373:1849-60 (abstract via PubMed, PMID 19482214).")
# Snapshot fallback (Rule 2). PubMed Central and PubMed periodically block or
# throttle automated fetches, so each citation carries an offline snapshot of
# the page captured on 2026-05-20. The verifier uses the fallback chain
# live -> snapshot -> Wayback, so a transient live-fetch failure cannot change
# the verdict. The snapshots are public-domain government pages, stored as
# separate files to keep this script readable.
_PROOF_DIR = os.path.dirname(os.path.abspath(__file__))
def _load_snapshot(fname):
fpath = os.path.join(_PROOF_DIR, fname)
try:
with open(fpath, encoding="utf-8") as f:
return f.read()
except FileNotFoundError:
return None
_SNAPSHOT_2002 = _load_snapshot("snapshots/pmc64503.html")
_SNAPSHOT_2009 = _load_snapshot("snapshots/pubmed19482214.html")
_SNAPSHOT_DATE = "2026-05-20"
empirical_facts = {
# ---- SC1: association (aspirin reduces non-fatal MI in prior-CVD patients) ----
"sc1_att2002_mi": {
"quote": (
"Overall, among these high risk patients, allocation to antiplatelet "
"therapy reduced the combined outcome of any serious vascular event by "
"about one quarter; non-fatal myocardial infarction was reduced by one "
"third, non-fatal stroke by one quarter, and vascular mortality by one "
"sixth"
),
"url": _PMC_2002,
"source_name": _SRC_2002,
"snapshot": _SNAPSHOT_2002,
"snapshot_source": "public:pre_fetched",
"snapshot_fetched_at": _SNAPSHOT_DATE,
},
"sc1_att2002_dose": {
"quote": (
"Aspirin was the most widely studied antiplatelet drug, with doses of "
"75-150 mg daily at least as effective as higher daily doses."
),
"url": _PMC_2002,
"source_name": _SRC_2002,
"snapshot": _SNAPSHOT_2002,
"snapshot_source": "public:pre_fetched",
"snapshot_fetched_at": _SNAPSHOT_DATE,
},
"sc1_att2009": {
"quote": (
"In the secondary prevention trials, aspirin allocation yielded a "
"greater absolute reduction in serious vascular events"
),
"url": _PUBMED_2009,
"source_name": _SRC_2009,
"snapshot": _SNAPSHOT_2009,
"snapshot_source": "public:pre_fetched",
"snapshot_fetched_at": _SNAPSHOT_DATE,
},
# ---- SC2: causation (the meta-analysis pools randomised controlled trials) ----
"sc2_att2002": {
"quote": (
"Randomised trials of an antiplatelet regimen versus control or of one "
"antiplatelet regimen versus another in high risk patients"
),
"url": _PMC_2002,
"source_name": _SRC_2002,
"snapshot": _SNAPSHOT_2002,
"snapshot_source": "public:pre_fetched",
"snapshot_fetched_at": _SNAPSHOT_DATE,
},
"sc2_att2009": {
"quote": (
"collaborative meta-analysis of individual participant data from "
"randomised trials"
),
"url": _PUBMED_2009,
"source_name": _SRC_2009,
"snapshot": _SNAPSHOT_2009,
"snapshot_source": "public:pre_fetched",
"snapshot_fetched_at": _SNAPSHOT_DATE,
},
}
# ---------------------------------------------------------------------------
# 4. CITATION VERIFICATION (Rule 2)
# ---------------------------------------------------------------------------
citation_results = verify_all_citations(empirical_facts, wayback_fallback=True)
# ---------------------------------------------------------------------------
# 5. COUNT VERIFIED SOURCES PER SUB-CLAIM
# ---------------------------------------------------------------------------
COUNTABLE_STATUSES = ("verified", "partial")
sc1_keys = [k for k in empirical_facts if k.startswith("sc1_")]
sc2_keys = [k for k in empirical_facts if k.startswith("sc2_")]
n_sc1 = sum(1 for k in sc1_keys if citation_results[k]["status"] in COUNTABLE_STATUSES)
n_sc2 = sum(1 for k in sc2_keys if citation_results[k]["status"] in COUNTABLE_STATUSES)
# ---------------------------------------------------------------------------
# 6. PER-SUB-CLAIM EVALUATION (Rule 7 - compare(), no eval())
# ---------------------------------------------------------------------------
sc1_holds = compare(n_sc1, ">=", CLAIM_FORMAL["sub_claims"][0]["threshold"],
label="SC1 (association): verified ATT sources")
sc2_holds = compare(n_sc2, ">=", CLAIM_FORMAL["sub_claims"][1]["threshold"],
label="SC2 (causation): verified ATT sources")
# ---------------------------------------------------------------------------
# 7. COMPOUND EVALUATION
# ---------------------------------------------------------------------------
n_holding = sum([sc1_holds, sc2_holds])
n_total = len(CLAIM_FORMAL["sub_claims"])
claim_holds = compare(n_holding, "==", n_total, label="compound: all sub-claims hold")
# ---------------------------------------------------------------------------
# 8. COI FLAGS (Rule 6) - per sub-claim
# ---------------------------------------------------------------------------
# The ATT Collaboration is an independent academic consortium funded by the UK
# Medical Research Council, British Heart Foundation, Cancer Research UK and the
# EC Biomed Programme -- no aspirin-manufacturer funding. Its 2009 Lancet paper
# concluded that aspirin is "of uncertain net value" in primary prevention,
# demonstrating willingness to report null/negative findings. No conflict of
# interest favoring the claim was identified for either sub-claim.
sc1_coi_flags = []
sc2_coi_flags = []
# ---------------------------------------------------------------------------
# 9. ADVERSARIAL CHECKS (Rule 5) - counter-evidence searched during research
# ---------------------------------------------------------------------------
adversarial_checks = [
{
"question": ("Does the ATT meta-analysis actually report a reduction in "
"non-fatal myocardial infarction, or is the attribution wrong?"),
"verification_performed": (
"Fetched and read the ATT 2002 BMJ meta-analysis (PMC64503) and the "
"ATT 2009 Lancet meta-analysis abstract (PubMed 19482214); searched for "
"the verbatim findings on non-fatal MI and secondary prevention."
),
"finding": (
"The attribution is accurate. The 2002 BMJ ATT meta-analysis explicitly "
"states that, among high-risk patients, 'non-fatal myocardial infarction "
"was reduced by one third'. The 2009 Lancet ATT meta-analysis reports "
"that in secondary-prevention trials aspirin reduced serious vascular "
"events and coronary events. No mismatch between the claim and the named "
"source was found."
),
"breaks_proof": False,
},
{
"question": ("Does the bleeding harm of aspirin negate or contradict the "
"reduction in non-fatal MI?"),
"verification_performed": (
"Searched for counter-evidence on aspirin's bleeding harms and net "
"benefit in secondary prevention (gastrointestinal / extracranial "
"bleeding meta-analyses)."
),
"finding": (
"Aspirin does increase major extracranial and gastrointestinal bleeding "
"-- a well-documented, separate harm. This does not contradict the "
"claim, which concerns the non-fatal-MI outcome specifically, not net "
"clinical benefit. The ATT 2002 paper itself reports that in the "
"high-risk categories 'the absolute benefits substantially outweighed "
"the absolute risks of major extracranial bleeding'. Bleeding is a "
"treatment trade-off, not evidence against the MI-reduction finding, so "
"it does not break the proof."
),
"breaks_proof": False,
},
{
"question": ("Is the secondary-prevention benefit of aspirin contradicted by "
"more recent evidence from the modern statin / revascularization "
"era?"),
"verification_performed": (
"Searched 2020-2025 reviews and meta-analyses that question aspirin in "
"secondary prevention, including recent commentary and a 2025 systematic "
"review/meta-analysis of aspirin for secondary prevention of MI."
),
"finding": (
"Recent commentary debates whether aspirin's marginal benefit is as "
"large in the modern treatment era and notes P2Y12 inhibitors as "
"alternatives. However, a 2025 systematic review/meta-analysis still "
"found aspirin reduced recurrent events by roughly a fifth in secondary "
"prevention, and no source claims the ATT finding of reduced non-fatal "
"MI was wrong or reversed. The direction of effect is confirmed by "
"modern evidence; only the magnitude and its role relative to newer "
"therapies are debated. This does not break a proof scoped to the ATT "
"meta-analysis finding."
),
"breaks_proof": False,
},
{
"question": ("Does 'low-dose' aspirin specifically -- not antiplatelet "
"therapy in general -- carry the non-fatal MI reduction?"),
"verification_performed": (
"Checked the ATT 2002 BMJ dose analysis and the scope of the 2009 "
"Lancet meta-analysis."
),
"finding": (
"Supported. The ATT 2002 meta-analysis found 'doses of 75-150 mg daily "
"at least as effective as higher daily doses' and identified aspirin as "
"'the most widely studied antiplatelet drug'; the 2009 ATT meta-analysis "
"is explicitly an analysis of 'low-dose aspirin'. The 2002 paper notes "
"the effects of doses below 75 mg are 'less certain', but standard "
"low-dose aspirin (75-150 mg) is squarely within the supported range, "
"so this does not break the proof."
),
"breaks_proof": False,
},
{
"question": ("Could 'recurrent' non-fatal MI be unsupported because the ATT "
"meta-analysis pooled mixed prior-CVD populations rather than "
"only prior-MI patients?"),
"verification_performed": (
"Reviewed the ATT meta-analysis patient categories in the 2002 BMJ and "
"2009 Lancet reports."
),
"finding": (
"The ATT meta-analysis explicitly includes a 'previous myocardial "
"infarction' patient category among its high-risk groups (six "
"secondary-prevention prior-MI trials in the 2009 analysis), in which a "
"subsequent non-fatal MI is by definition recurrent. The proof "
"interprets 'recurrent non-fatal MI in patients with prior CVD' as "
"non-fatal MI events within the established-CVD secondary-prevention "
"population the ATT analysed -- an interpretation documented in the "
"operator_note that does not overstate the source -- so this does not "
"break the proof."
),
"breaks_proof": False,
},
]
# ---------------------------------------------------------------------------
# 10. VERDICT
# ---------------------------------------------------------------------------
if __name__ == "__main__":
any_unverified = any(
cr["status"] != "verified" for cr in citation_results.values()
)
any_breaks = any(ac.get("breaks_proof") for ac in adversarial_checks)
is_disproof = CLAIM_FORMAL.get("proof_direction") == "disprove"
# Per-sub-claim COI gate (Rule 6)
sc1_confirmed_keys = {k for k in sc1_keys
if citation_results[k]["status"] in COUNTABLE_STATUSES}
sc1_coi_favorable = {f["source_key"] for f in sc1_coi_flags
if f["direction"] == "favorable_to_subject"
and f["source_key"] in sc1_confirmed_keys}
sc1_coi_unfavorable = {f["source_key"] for f in sc1_coi_flags
if f["direction"] == "unfavorable_to_subject"
and f["source_key"] in sc1_confirmed_keys}
sc1_coi_majority = max(len(sc1_coi_favorable), len(sc1_coi_unfavorable)) if sc1_coi_flags else 0
sc1_threshold = CLAIM_FORMAL["sub_claims"][0]["threshold"]
sc1_coi_override = n_sc1 >= sc1_threshold and sc1_coi_majority > n_sc1 / 2
sc2_confirmed_keys = {k for k in sc2_keys
if citation_results[k]["status"] in COUNTABLE_STATUSES}
sc2_coi_favorable = {f["source_key"] for f in sc2_coi_flags
if f["direction"] == "favorable_to_subject"
and f["source_key"] in sc2_confirmed_keys}
sc2_coi_unfavorable = {f["source_key"] for f in sc2_coi_flags
if f["direction"] == "unfavorable_to_subject"
and f["source_key"] in sc2_confirmed_keys}
sc2_coi_majority = max(len(sc2_coi_favorable), len(sc2_coi_unfavorable)) if sc2_coi_flags else 0
sc2_threshold = CLAIM_FORMAL["sub_claims"][1]["threshold"]
sc2_coi_override = n_sc2 >= sc2_threshold and sc2_coi_majority > n_sc2 / 2
any_coi_override = sc1_coi_override or sc2_coi_override
# This is a causal-decomposition compound claim, not a contested-qualifier
# claim, so the contested-qualifier branch must not fire.
is_contested_qualifier = "qualifier" in CLAIM_FORMAL.get("operator_note", "").lower()
if any_breaks:
base_verdict = "UNDETERMINED"
elif any_coi_override:
base_verdict = "UNDETERMINED"
elif is_contested_qualifier and sc1_holds and not sc2_holds:
base_verdict = "DISPROVED"
elif not claim_holds and n_holding > 0:
base_verdict = "PARTIALLY VERIFIED"
elif claim_holds:
base_verdict = "DISPROVED" if is_disproof else "PROVED"
elif not claim_holds and n_holding == 0:
base_verdict = "UNDETERMINED"
else:
base_verdict = "UNDETERMINED" # defensive fallback
verdict = apply_verdict_qualifier(base_verdict, any_unverified)
builder = ProofSummaryBuilder(CLAIM_NATURAL, CLAIM_FORMAL)
for fid, info in FACT_REGISTRY.items():
if not fid.startswith("B"):
continue
ef_key = info["key"]
ef = empirical_facts[ef_key]
cr = citation_results.get(ef_key, {})
sub_claim = "SC1" if ef_key in sc1_keys else "SC2"
builder.add_empirical_fact(
fid,
label=info["label"],
source_name=ef["source_name"],
source_url=ef["url"],
source_quote=ef["quote"],
sub_claim=sub_claim,
)
builder.set_verification(
fid,
status=cr.get("status", "unknown"),
method=cr.get("method", "full_quote"),
coverage_pct=cr.get("coverage_pct"),
fetch_mode=cr.get("fetch_mode", "live"),
credibility=cr.get("credibility", {}),
)
builder.set_extraction(
fid,
value=cr.get("status", "unknown"),
value_in_quote=cr.get("status") in COUNTABLE_STATUSES,
quote_snippet=ef["quote"][:80],
)
sc1_fact_ids = [fid for fid, info in FACT_REGISTRY.items()
if fid.startswith("B") and info["key"] in sc1_keys]
sc2_fact_ids = [fid for fid, info in FACT_REGISTRY.items()
if fid.startswith("B") and info["key"] in sc2_keys]
builder.add_computed_fact(
"A1",
label="SC1 verified source count",
method=f"count(verified sc1 citations) = {n_sc1}",
result=n_sc1,
depends_on=sc1_fact_ids,
sub_claim="SC1",
)
builder.add_computed_fact(
"A2",
label="SC2 verified source count",
method=f"count(verified sc2 citations) = {n_sc2}",
result=n_sc2,
depends_on=sc2_fact_ids,
sub_claim="SC2",
)
builder.add_cross_check(
description="SC1: independent ATT meta-analysis publications consulted",
fact_ids=sc1_fact_ids,
n_sources_consulted=len(sc1_keys),
n_sources_verified=n_sc1,
sources={k: citation_results[k]["status"] for k in sc1_keys},
independence_note=(
"SC1 draws on two distinct ATT meta-analyses published seven years "
"apart in different journals (BMJ 2002, Lancet 2009) using different "
"methods (tabular data vs individual participant data) and overlapping "
"but non-identical trial sets. B1 and B2 are two distinct findings "
"(the non-fatal-MI reduction and the low-dose equivalence) from the "
"2002 BMJ paper; B3 is from the independent 2009 Lancet meta-analysis."
),
coi_flags=sc1_coi_flags,
agreement=sc1_holds,
)
builder.add_cross_check(
description="SC2: independent ATT meta-analysis publications consulted",
fact_ids=sc2_fact_ids,
n_sources_consulted=len(sc2_keys),
n_sources_verified=n_sc2,
sources={k: citation_results[k]["status"] for k in sc2_keys},
independence_note=(
"SC2 is confirmed by both ATT publications independently: the 2002 BMJ "
"paper restricts inclusion to 'Randomised trials', and the 2009 Lancet "
"paper is a 'collaborative meta-analysis of individual participant data "
"from randomised trials'. Two separate publications each document the "
"randomized-controlled-trial basis."
),
coi_flags=sc2_coi_flags,
agreement=sc2_holds,
)
builder.add_sub_claim_result(
id="SC1", n_confirming=n_sc1,
threshold=CLAIM_FORMAL["sub_claims"][0]["threshold"], holds=sc1_holds,
)
builder.add_sub_claim_result(
id="SC2", n_confirming=n_sc2,
threshold=CLAIM_FORMAL["sub_claims"][1]["threshold"], holds=sc2_holds,
)
for ac in adversarial_checks:
builder.add_adversarial_check(
question=ac["question"],
verification_performed=ac["verification_performed"],
finding=ac["finding"],
breaks_proof=ac["breaks_proof"],
)
builder.set_verdict(base_verdict, any_unverified=any_unverified)
builder.set_key_results(
n_holding=n_holding,
n_total=n_total,
claim_holds=claim_holds,
sc1_verified_sources=n_sc1,
sc2_verified_sources=n_sc2,
)
print("=" * 70)
print("PROOF: Daily low-dose aspirin and recurrent non-fatal MI (ATT)")
print("=" * 70)
print(f"SC1 (association) verified ATT sources: {n_sc1} "
f"(threshold {CLAIM_FORMAL['sub_claims'][0]['threshold']}) -> holds={sc1_holds}")
print(f"SC2 (causation) verified ATT sources: {n_sc2} "
f"(threshold {CLAIM_FORMAL['sub_claims'][1]['threshold']}) -> holds={sc2_holds}")
print(f"Sub-claims holding: {n_holding}/{n_total}")
print(f"Adversarial checks that break the proof: "
f"{sum(1 for ac in adversarial_checks if ac['breaks_proof'])}")
print(f"\nVERDICT: {verdict}")
print("=" * 70)
builder.emit()
Re-execute this proof
The verdict above is cached from when this proof was minted. To re-run the exact
proof.py shown in "View proof source" and see the verdict recomputed live,
launch it in your browser — no install required.
Re-execute the exact bytes deposited at Zenodo.
Re-execute in Binder runs in your browser · ~60s · no installFirst run takes longer while Binder builds the container image; subsequent runs are cached.
machine-readable formats
Downloads & raw data
found this useful? ★ star on github