Skip to content

feat(Tactic/ComputeAsymptotics/Multiseries): compute limits of Monomials#37415

Open
vasnesterov wants to merge 3 commits intoleanprover-community:masterfrom
vasnesterov:compute_asymptotics_term
Open

feat(Tactic/ComputeAsymptotics/Multiseries): compute limits of Monomials#37415
vasnesterov wants to merge 3 commits intoleanprover-community:masterfrom
vasnesterov:compute_asymptotics_term

Conversation

@vasnesterov
Copy link
Copy Markdown
Collaborator

Prove

  • UnitMonomial.logToFun_isEquivalent_of_nonzero_head: log m.toFun is asymptotically equivalent
    to its first summand - m[0] • log basis[0] if m[0] ≠ 0. Using this theorem we can prove that
    the asymptotic behavior of a monomial is determined by its first non-zero exponent.
  • toFun_tendsto_top_of_FirstNonzeroIsPos and its variants: used to infer the limit of
    t.toFun from FirstNonzeroIsPos/FirstNonzeroIsNeg/AllZero.
  • IsLittleO_of_lt_exps and its variants: used to asymptotically compare two monomials.

This is a part of the compute_asymptotics tactic (#28291).

Open in Gitpod

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 31, 2026

PR summary fdd294c699

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.Tactic.ComputeAsymptotics.Multiseries.Basis 1772 1775 +3 (+0.17%)
Import changes for all files
Files Import difference
Mathlib.Tactic 2
Mathlib.Tactic.ComputeAsymptotics.Multiseries.Basis 3
Mathlib.Tactic.ComputeAsymptotics.Multiseries.Monomial.Predicates (new file) 1777
Mathlib.Tactic.ComputeAsymptotics.Multiseries.Monomial.Basic (new file) 1778

Declarations diff

+ AllZero
+ AllZero.cons_iff
+ AllZero_of_nil
+ AllZero_of_replicate
+ AllZero_of_tail
+ FirstNonzeroIsNeg
+ FirstNonzeroIsNeg_of_head
+ FirstNonzeroIsNeg_of_tail
+ FirstNonzeroIsPos
+ FirstNonzeroIsPos_of_head
+ FirstNonzeroIsPos_of_tail
+ IsLittleO_of_lt
+ IsLittleO_of_lt_exps
+ IsLittleO_of_lt_exps_left
+ IsLittleO_of_lt_exps_right
+ Monomial
+ UnitMonomial
+ cons_toFun
+ logToFun_eq_toLogFun
+ logToFun_isEquivalent_of_nonzero_head
+ mul_length
+ neg
+ neg_toFun
+ nil_toFun
+ not_FirstNonzeroIsPos_of_AllZero
+ not_FirstNonzeroIsPos_of_FirstNonzeroIsNeg
+ pow_isLittleO_pow_of_log
+ smul
+ smul_toFun
+ tail_pow_Majorized_head
+ tendsto_zero_of_coef_zero
+ toFun_cons
+ toFun_ne_zero
+ toFun_nil
+ toFun_nil_basis
+ toFun_tendsto_bot_of_FirstNonzeroIsPos
+ toFun_tendsto_const_of_AllZero
+ toFun_tendsto_one_of_AllZero
+ toFun_tendsto_top_of_head_pos
+ toFun_tendsto_zero_of_head_neg
+ toLogFun
+ toLogFun_cons
+ toLogFun_nil
+ toLogFun_nil_basis
+ zero_coef_toFun
+ zero_coef_toFun'
++ inv
++ inv_length
++ inv_toFun
++ mul
++ mul_toFun
++ tail_toFun_IsLittleO_head
++ toFun
++ toFun_pos
++ toFun_tendsto_top_of_FirstNonzeroIsPos
++ toFun_tendsto_zero_of_FirstNonzeroIsNeg
++ zeros_append_toFun

You can run this locally as follows
## summary with just the declaration names:
./scripts/pr_summary/declarations_diff.sh <optional_commit>

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

The doc-module for scripts/pr_summary/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./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).

@github-actions github-actions bot added the t-meta Tactics, attributes or user commands label Mar 31, 2026
@mathlib-dependent-issues mathlib-dependent-issues bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Mar 31, 2026
@mathlib-dependent-issues
Copy link
Copy Markdown

This PR/issue depends on:

@joneugster joneugster self-assigned this Apr 10, 2026
Copy link
Copy Markdown
Contributor

@joneugster joneugster left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These look (superficially) reasonable to me. Maybe there is some potential to clean up a bit more and make some proves shorter, but I'll look at that when the dependencies are merged.

The capitalisation of theorems needs to be fixed in this PR likewise to the other PRs.

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

Labels

blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) t-meta Tactics, attributes or user commands

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants