Full validation of PIR engineering notes against source PDFs — checks every footnote, table, formula, protocol description, and benchmark claim
Verify every claim in engineering notes against the source PDF — footnoted citations, unfootnoted table values, protocol descriptions, complexity expressions, benchmarks, and quoted text. Supports two scopes: an entire group or a single scheme. NEVER enter plan mode. Execute directly.
research/<Group Directory>/<scheme>/<scheme>_notes.mdScope (determined by the user's request):
Read the full notes file. Read the PDF using the Read tool with the pages parameter (e.g., pages "1-20", then "21-40", etc.). Read the ENTIRE paper — do not skip sections.
Extract every [^N] footnote definition. For each footnote, check all of the following against the source PDF:
| Check | What to verify |
|---|---|
| Page number | Cited page matches where the content actually appears (off-by-one is the most common error) |
| Section/figure/table number | Cited section, figure, or table is correct |
| Quoted text | If the footnote quotes the paper, verify it's verbatim — flag omitted qualifiers ("roughly", "approximately"), inserted words, truncated context that changes meaning, or blended quotes (text spliced from non-adjacent locations presented as a single continuous quotation) |
| Numerical values | Numbers match the paper exactly — check for swapped table rows/columns, wrong parameter sets, or misattributed values from adjacent entries (same checks as 3b; here applied to footnoted references — see Section 6) |
| Units | Bits vs bytes, KB vs KiB, ms vs s — unit errors propagate into order-of-magnitude discrepancies |
| Arithmetic | If the footnote derives a value (e.g., "9 * 46 * 4096 bits = ~27 KB"), verify the math |
| Attribution | The claim is attributed to the correct paper, not to an external document or a paper that postdates the source |
| Editorial vs citation | Flag when subjective commentary (e.g., "below the typical 128-bit target") is mixed into what appears to be a cited claim |
| Figures and plots | If the footnote cites a figure, verify data points against axis labels, legend entries, and units — see Section 6 |
| Table values | Verify the correct row, column, and parameter set — watch for multi-level headers and adjacent-row swaps — see Section 6 |
| Mathematical notation | Verify asymptotic expressions, variable definitions, theorem statements, and concrete vs asymptotic claims — see Section 6 |
Many claims in the notes are not backed by a footnote — table cells, protocol phase descriptions, complexity expressions, and inline comparisons. These are equally important. For every such claim, verify against the PDF:
| Check | What to verify |
|---|---|
| Table values | Every cell in every table — benchmark numbers, complexity expressions, parameter values. Cross-reference against the specific PDF table, row, column, and parameter set. |
| Protocol descriptions | Algorithmic steps, input/output descriptions, message contents match the paper's protocol specification |
| Complexity expressions | Asymptotic bounds, concrete costs, communication sizes — verify the exact expression, not just the order |
| Scheme comparisons | When the notes compare schemes (e.g., "2× faster than X"), verify the comparison is attributed to the correct scheme and the correct metric |
| Derived calculations | If the notes compute a value from paper data (e.g., total = upload + download), verify the arithmetic |
| Reversed comparisons | "X is 2× faster than Y" vs "Y is 2× faster than X" — direction matters |
| "Total" vs "online" | Distinguish total computation (including preprocessing) from online-only costs; flag when these are conflated |
| Conflated references | Theorem vs corollary vs lemma — verify the exact statement being cited |
Use exactly these three categories:
| Verdict | Criteria | Examples |
|---|---|---|
| Correct | Claim, location, and values all match the PDF | — |
| Minor | Core claim is right but has a small error that doesn't change the technical meaning | Wrong page (off by 1-2), truncated quote missing a qualifier, slightly imprecise section reference, close paraphrase labeled as quote |
| Incorrect | Factual error that misrepresents what the paper says | Fabricated data point, wrong numerical value (>2× off), bits/bytes confusion, claim attributed to wrong source, arithmetic error in derived value, reversed comparison, formula transcription error |
If a seemingly small error changes the value by more than 2× or changes the asymptotic class (e.g., O(log n) vs O(log log n)), classify it as INCORRECT even if the surrounding claim structure is correct.
These overlap with checks in Sections 3 and 6 but are called out separately because they are the most frequent sources of confirmed errors across 1700+ validated claims in this repo:
q/p; R_{n,q} collapses subscript levels → R_q; ‖v‖_∞ loses double bars → |v|∞; mod q drops silently.n^{1/3} or log_2(n) may not perfectly mirror the PDF's typeset notation. Verify the mathematical content matches even if the formatting differs.One file per scheme. Every scheme gets its own checkup file, even when validating a whole group.
File naming: checkups/<pass>/issues/Checkup_<scheme>.md
When validating a whole group, create one file per scheme in that group (e.g., 11 files for Group 1a).
Count one claim per footnote definition, plus one claim per unfootnoted table cell or unfootnoted prose assertion that references a specific value, formula, or attribution from the paper.
## <Scheme> (<Year>) — <Pass> Fact-Check
**Notes:** `<scheme>_notes.md`
**PDF:** `<paper>.pdf`
**Claims checked:** <N> | **Issues found:** <N> | **Minor:** <N> | **Incorrect:** <N>
---
### INCORRECT Findings
**1. <Short description>**
- **Statement in notes:** "<exact text from the notes>"
- **Location:** <footnote [^N], table name, section, or line>
- **What the PDF actually says:** <what you found, with page/section>
- **Problem:** <precise explanation of the error>
---
### MINOR Issues
**1. <Short description>** — <Explanation of the issue.>
None. under the headingNone. under the heading(cross-pass persistent) in the finding titleWhen a separate reviewer agent verifies findings, append a ### Reviewer Verdict section to the checkup file:
**Rejected:** <N> to the header stats if any findings are rejected; Issues found should reflect only confirmed findingsEvery [^N] reference in output files should be hyperlinked to the footnote definition in the notes file when feasible. Use the anchor format #user-content-fn-N (e.g., [\[^N\]](path/to/notes.md#user-content-fn-N)). This is a best-effort convention — bare [^N] references are acceptable when constructing links is impractical.
After checkup files are produced, the typical workflow is:
Fix step: Apply corrections to the notes files for all confirmed findings. Fixes are documented in checkups/<pass>/fixes/Fixes_<group>.md. When correcting a value, search the entire notes file for ALL occurrences (tables, prose, footnotes) to avoid the incomplete-fix pattern.
Review step: An independent agent re-reads each fixed notes file and PDF to verify correctness, completeness, and absence of regressions. Reviews are documented in checkups/<pass>/fixes/Review_<group>.md.
Aggregate: A checkups/<pass>/fixes/README.md summarizes fix counts and review outcomes per group.