Repository navigation
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`checkClosure` reports the axioms each declaration rests on. A claim whose declarations rest on `sorry` or a nonstandard axiom (including the one `native_decide` adds) is `unproved`, whatever its sign-off. `checks.py core` lists the declarations of the checked claims and the definitions their statements use. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
patrl
force-pushed
the
human-review-status
branch
from
November 3, 2026 17:22
533da8b to
b1784b3
Compare
`checks.py status --json` exports every claim with its status and newest sign-off. `gen_docs_pages.py --checks` reads it and writes, below each declaration stating a claim, a line saying who checked it against which claim of the source, or that its statement has changed since, or which unchecked claim it relies on. The docs workflow exports the checks before composing the site. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`checks.py status` now exits non-zero when a claim's declaration does not resolve, and CI runs it after the build, so a rename or removal that leaves a check file behind fails the PR that made it. Stale claims do not fail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This reverts commit 0bbdd4c. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
It is important to introduce some tooling to indicate which Lean statements have been explicitly checked by a human relative to their source (see #6209).
This PR sketches one way in which this might work: Lean statements are signed off by a human; sources are associated with a TOML inventory of their claims, together with the corresponding Lean code. A human sign-off records a hash of the declaration's statement closure while excluding proofs - the intent here is that a claim is only signed off if the lean statement has been checked relative to the source by a domain expert.
Some design principles:
What's here
checks/<bib-key>.toml, one per source: its claims (with the source's own labels), the declarations stating each, how they relate to the claim (exact,generalizes,specializes,variant,missing), and the sign-offs.checks/README.mddocuments the format.lake exe checkClosure: computes statement closures from the elaborated terms (types, plus the bodies of project definitions they use, never proofs), and the axioms each declaration rests on.scripts/checks.py:status: each claim ischecked,relies(signed, but depends on an unchecked claim),stale(its statement closure has changed since the sign-off),unchecked,missing,broken(a declaration doesn't resolve) orunproved(rests onsorryor an axiom beyondpropext/Classical.choice/Quot.sound, includingnative_decide's).diff: what changed since a claim was signed.sign: records a sign-off with the closure's hash; refuses to run inside an agent session.core: the reviewed core, i.e. the declarations of the checked claims and the definitions their statements use. Since a claim is only checked if the claims it depends on are, nothing in the core depends for its meaning on anything outside it. (Extracting it as a buildable artifact, e.g. by exporting the full constant closure and re-checking it with an independent kernel, is left for later.)status --json: every claim and its latest sign-off, for the docs pages.docs.ymlexports the checks before composing the site.No source has a check file yet; the George (2014) record follows once #6211 lands.
(This is a big, and important feature, and probably warrants further discussion before settling on a design. Maybe an RFC process would be helpful.)