Skip to content

fix(NormNum): stop after a location closes the goal - #42355

Open
sankalpsthakur wants to merge 6 commits into
leanprover-community:masterfrom
sankalpsthakur:agent/norm-num-multiple-locations
Open

fix(NormNum): stop after a location closes the goal#42355
sankalpsthakur wants to merge 6 commits into
leanprover-community:masterfrom
sankalpsthakur:agent/norm-num-multiple-locations

Conversation

@sankalpsthakur

Copy link
Copy Markdown

norm_num at h1 h2 ... (and other tactics built on Lean.Elab.Tactic.withNondepPropLocation) unconditionally processed every hypothesis in the location list, then the target. If an earlier hypothesis closed the goal (e.g. norm_num found h1 to already be False), processing continued against an already-closed goal instead of stopping.

Stops iterating once getGoals is empty.

Motivated by #28703.

Validation

  • Built locally: lake build Mathlib.Util.AtLocation and lake build MathlibTest.Tactic.NormNum.Basic — both succeed, including the added regression test (h : 0 = 1, h2 : 0 = 2 case).
  • Scope note: withNondepPropLocation currently has no other callers in the Mathlib tree besides its own definition file, so the change is narrowly scoped to norm_num's own location handling. Did not run a full-library build; relying on CI for broader coverage.

Closes #28703

AI/LLM disclosure

AI coding tools were used to help draft this change and PR description. I reviewed the complete change, understand the reasoning, and verified the build locally before submitting.

@github-actions github-actions Bot added the new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! label Aug 1, 2026
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

Welcome new contributor!

Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests.

We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the awaiting-author tag, or another reason described in the Lifecycle of a PR. The review dashboard has a dedicated webpage which shows whether your PR is on the review queue, and (if not), why.

If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR.

Thank you again for joining our community.

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

PR summary 3a7767a7e2

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff (regex)

No declarations were harmed in the making of this PR! 🐙

You can run this locally as follows
## from your `mathlib4` directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci

## summary with just the declaration names:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh in the mathlib-ci repository contains some details about this script.

Declarations diff (Lean)

Lean-aware diff — post-build, computed from the Lean environment (commit 3a7767a).

  • +0 new declarations
  • −0 removed declarations

No declaration differences.


No changes to strong technical debt.

No changes to weak technical debt.

Current commit 3a7767a7e2
Reference commit 54df8a3f96

This script lives in the mathlib-ci repository. To run it locally, from your mathlib4 directory:

git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci
../mathlib-ci/scripts/reporting/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

regression: if norm_num at h1 closes a goal then norm_num at h1 h2 fails

1 participant