Repository navigation
Correct declaration, proof, recursion, and dependency metrics - #1
Merged
Merged
Conversation
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.
The audit found several metrics that changed for reasons unrelated to the authored Lean code. For example, Peano's two local instances were reported as a theorem and a definition, and ODE's three instance-registration commands inflated its declaration count from 43 to 46. This change corrects the underlying counting and classification rules and adds reproducible regression projects.
Changes:
Box.toNatandCommRing.toCommSemiringnow remain in the graph and documentation metrics.attribute [instance]separately from new declarations and instances.set_option … in, andopen … inwhen classifying tactic proofs and termrfl; preserve actual tactic nesting depth.root_id, so private names shared across modules do not collapse.moduleheader.Bumps the tool to 0.2.0 and output schema to 2. Consumers should remeasure old baselines and use graph IDs for identity. The README also clarifies that the wrapper does not port the tool to arbitrary Lean releases.
Validation:
lake test: all 34 fixture projects and four integration checks pass. The seven added projects cover six bug cases and a generated-parent-projection control; all six bug cases reproduce failures on the original binary.Peano now reports 29 theorems, 3 definitions, and 2 local instances. Abel has 34 source declarations plus one authored local-notation parser, consistent with the graph's documented inclusion rule. Its graph checks found no additional defect. Restoring handwritten Mathlib declarations increases external dependency counts in all six samples; internal edges and graph costs remain unchanged.
Inputs:
AxiomMath/lean-eval-rhoatc645c4caf28ed1540bafe922bd61513e6e9e951c, over benchmark workspaces ate8eb893903723ec730c84e55b8eceb75916cf2f3, with Mathlib5ed2965256430c3649e86755f9576b54eca72435. Each workspace was built first and measured with--lib Submission --module Submission --details, excluding challenge scaffolding. These checks exercise the metric implementation; they are not a claim of exhaustive correctness for every Lean construct.