0006: A challenge file holds the audited statements
Decision: each claim's Lean statement is written once more in a challenge file, apart from the proofs, and the person audits that file; a program and Lean then hold each proof to it.
Status: accepted, 2026-11-03. Shape: decision record.
Context
- B1 asks that comparator check that each proof proves the stated claim, and that a person audit each statement (baseline).
- The proof file mixes statements and proofs, so a person auditing it reads proofs they need not read.
- Lean FRO's comparator needs its own sandbox and a build of the whole project; it is not run here.
Decision
Blueprint/Challenge.leanstates each claim with the bodysorry, under the namesChallenge.XforBlueprint.X.checks/local/comparator.pyreads both files as text and fails when a statement differs after comments and whitespace, when theopencommands differ, when the challenge holds a proof, or when a challenge has no topic.Blueprint/Agreement.leanhas Lean compare the two types and list the axioms of each proof, built in CI asBlueprintCompare, apart from the proofs because the challenge holdssorryon purpose.- Each topic gains an
**Audited:**line:not yet, or the date the maintainer compared the statement with its source. The maintainer writes the date; the comparator reads its form only.
Consequences
- The person audits four short statements in one file, not the proofs.
- A proof that proves something else fails the build, in seconds by text and then by Lean.
- Bad: two texts that differ may state the same claim, and the text check fails them; the person or Lean then says which side to change.
- Bad: equal statements mean the same only if the names in them mean the same; the audit, not a program, covers it.
- Bad: this is the comparator's job done in a lighter way, not the tool itself; running the tool is later work.