leanprover-community / leanprover-community/mathlib4

Generalise Asymptotics API to drop commutative assumptions

Open
#19,288 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Lean
Stars
4.1k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

Extracted from #16015. A lot of lemmas in Analysis/Asymptotics/Asymptotics.lean have unnecessary commutative requirements. For example, by applying the follow change on line 59:

- variable [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] [SeminormedAddCommGroup G']
+ variable [SeminormedAddGroup E'] [SeminormedAddGroup F'] [SeminormedAddGroup G']

One only gets 50 errors in the file, with the first error occurring on line 623, despite there being more theorems using those variables:

rg "^theorem.+[EFGfgk]'[^']" Mathlib/Analysis/Asymptotics/Asymptotics.lean | wc -l
104

Relevant files that may also require fixing include Mathlib/Analysis/Normed/Field/Basic.lean (e.g. theorem norm_norm doesn't require commutativity), as they are used in the Asymptotics file.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in Mathlib/Analysis/Asymptotics/Asymptotics.lean by reviewing the proposed SeminormedAddGroup change and the first error around line 623; use the listed rg query to locate related theorems. Check Mathlib/Analysis/Normed/Field/Basic.lean, including norm_norm, for supporting assumptions. Done means the unnecessary commutative requirements are removed and the affected files check successfully.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.