Skip to content

fix: have nested field notation use consistent rules#7816

Merged
kmill merged 3 commits intoleanprover:masterfrom
kmill:kmill_fix_6400
Apr 4, 2025
Merged

fix: have nested field notation use consistent rules#7816
kmill merged 3 commits intoleanprover:masterfrom
kmill:kmill_fix_6400

Conversation

@kmill
Copy link
Copy Markdown
Collaborator

@kmill kmill commented Apr 4, 2025

This PR fixes an issue where x.f.g wouldn't work but (x.f).g would when x.f is generalized field notation. The problem was that x.f.g would assume x : T should be the first explicit argument to T.f. Now it uses consistent argument insertion rules. Closes #6400.

This also improves the algorithm for finding a relevant argument. Before it would try looking at the type and the whnf of the type, but now it iteratively unfolds types, checking each intermediate expansion.

This PR fixes an issue where `x.f.g` woludn't work but `(x.f).g` would, when `x.f` is generalized field notation. The problem was that `x.f.g` would assume `x : T` should be the first explicit argument to `T.f`. Now it uses consistent argument insertion rules. Closes leanprover#6400.
@kmill kmill added the changelog-language Language features and metaprograms label Apr 4, 2025
@kmill kmill changed the title fix: nested field notation uses same rules fix: nested field notation uses consistent rules Apr 4, 2025
@github-actions github-actions bot added the toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN label Apr 4, 2025
ghost pushed a commit to leanprover-community/batteries that referenced this pull request Apr 4, 2025
ghost pushed a commit to leanprover-community/mathlib4 that referenced this pull request Apr 4, 2025
@ghost ghost added the breaks-mathlib This is not necessarily a blocker for merging: but there needs to be a plan label Apr 4, 2025
@ghost
Copy link
Copy Markdown

ghost commented Apr 4, 2025

Mathlib CI status (docs):

@kmill kmill changed the title fix: nested field notation uses consistent rules fix: havee nested field notation use consistent rules Apr 4, 2025
ghost pushed a commit to leanprover-community/batteries that referenced this pull request Apr 4, 2025
ghost pushed a commit to leanprover-community/mathlib4 that referenced this pull request Apr 4, 2025
@kmill kmill changed the title fix: havee nested field notation use consistent rules fix: have nested field notation use consistent rules Apr 4, 2025
@ghost ghost added builds-mathlib CI has verified that Mathlib builds against this PR and removed breaks-mathlib This is not necessarily a blocker for merging: but there needs to be a plan labels Apr 4, 2025
ghost pushed a commit to leanprover-community/batteries that referenced this pull request Apr 4, 2025
ghost pushed a commit to leanprover-community/mathlib4 that referenced this pull request Apr 4, 2025
@ghost ghost added breaks-mathlib This is not necessarily a blocker for merging: but there needs to be a plan builds-mathlib CI has verified that Mathlib builds against this PR and removed builds-mathlib CI has verified that Mathlib builds against this PR breaks-mathlib This is not necessarily a blocker for merging: but there needs to be a plan labels Apr 4, 2025
@kmill kmill enabled auto-merge April 4, 2025 22:35
@kmill kmill added this pull request to the merge queue Apr 4, 2025
Merged via the queue into leanprover:master with commit 82c71fc Apr 4, 2025
30 checks passed
kmill added a commit to leanprover-community/mathlib4 that referenced this pull request Apr 19, 2025
* fixes

* fix test

* fix

* chore: adaptations for leanprover/lean4#7797

* stricter rfl check

* fix merge

* Trigger CI for leanprover/lean4#7797

* Trigger CI for leanprover/lean4#7797

* Trigger CI for leanprover/lean4#7797

* inverse construction

* Update lean-toolchain for testing leanprover/lean4#7791

* lake update

* Fix

* Fix

* Fix

* chore: bump to nightly-2025-04-03

* more fixes

* merge lean-pr-testing-6325

* bump proofwidgets

* Update lean-toolchain for testing leanprover/lean4#7812

* shake

* fix shake

* fix tests

* import mathlib.init

* Update lean-toolchain for testing leanprover/lean4#7816

* Trigger CI for leanprover/lean4#7816

* Update lean-toolchain for testing leanprover/lean4#7802

* Fix

* fixes

* Fix (pending upstream changes)

* Trigger CI for leanprover/lean4#7802

* fix

* chore: bump to nightly-2025-04-04

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Update lean-toolchain for testing leanprover/lean4#7818

* Fix

* Fix

* Fix

* Merge master into nightly-testing

* Fix

* Fix comments

* fixes

* Trigger CI for leanprover/lean4#7816

* fix

* fix

* missing doc-string?

* chore: bump to nightly-2025-04-05

* chore: bump to nightly-2025-04-06

* move Batteries to nightly-testing

* lake update

* lint

* fix

* chore: bump to nightly-2025-04-07

* sprinkle noncomputable

* fix: relativize file paths

fix for leanprover/lean4#7822

* chore: reset cache

* chore: bump to nightly-2025-04-07

* shake

* fix: relativize more

* Update lean-toolchain for testing leanprover/lean4#7856

* Update lean-toolchain for testing leanprover/lean4#7851

* Fix

* Fix

* Fix

* Fix

* chore: bump to nightly-2025-04-08

* Update lean-toolchain for testing leanprover/lean4#7870

* Trigger CI for leanprover/lean4#7870

* Trigger CI for leanprover/lean4#7870

* Trigger CI for leanprover/lean4#7870

* wip

* Trigger CI for leanprover/lean4#7870

* .

* chore: bump to nightly-2025-04-09

* Trigger CI for leanprover/lean4#7870

* .

* bump

* lake update

* fixes for leanprover/lean4#7873

* fixes

* deprecations

* chore: bump to nightly-2025-04-10

* chore: `Option.zipWith` -> `Option.merge`

* lake update

* toolchain

* fix

* fix

* Update lean-toolchain for testing leanprover/lean4#7897

* Trigger CI for leanprover/lean4#7897

* fix

* lake update and fix

* Fix

* Fix

* Trigger CI for leanprover/lean4#7897

* fix merge

* chore: adaptations for nightly-2025-04-10

* chore: bump to nightly-2025-04-14

* fix

* .

* annotate changed goal state

* fixes (adaptation notes)

* cleanup imports

* cleanup

* Update lean-toolchain for testing leanprover/lean4#7933

* Fix

* Fix

* Update lean-toolchain for testing leanprover/lean4#7975

* remove adaptation notes

* chore: bump to nightly-2025-04-16

---------

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com>
Co-authored-by: Kim Morrison <kim@tqft.net>
Co-authored-by: Markus Himmel <markus@lean-fro.org>
Co-authored-by: Rob23oba <robin.arnez@web.de>
Co-authored-by: Mario Carneiro <di.gama@gmail.com>
Co-authored-by: Johan Commelin <johan@commelin.net>
Co-authored-by: github-actions <github-actions@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

builds-mathlib CI has verified that Mathlib builds against this PR changelog-language Language features and metaprograms toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Nested dot notation results in a type error with type class instances

1 participant