Skip to content

[Merged by Bors] - feat(MathlibTest/FieldSimp): add a few more tests#28413

Closed
grunweg wants to merge 3 commits intoleanprover-community:masterfrom
grunweg:fieldsimptest
Closed

[Merged by Bors] - feat(MathlibTest/FieldSimp): add a few more tests#28413
grunweg wants to merge 3 commits intoleanprover-community:masterfrom
grunweg:fieldsimptest

Conversation

@grunweg
Copy link
Copy Markdown
Contributor

@grunweg grunweg commented Aug 14, 2025

Add a few more tests documenting current features of field_simp (or their absence). Extension to #28362; all of these have been discussed in the current field_simp rewrite with @FLDutchmann and @hrmacbeth.


Open in Gitpod

@github-actions
Copy link
Copy Markdown

github-actions bot commented Aug 14, 2025

PR summary b9adabfbe0

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

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

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

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

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


No changes to technical debt.

You can run this locally as

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

#guard_msgs in
example {hx : x ≠ 0} : P (x / x ^ 4) := by test_field_simp

-- We simplify subtracting the same term, even in constants and with literals.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I would argue this isn't necessarily in scope for field_simp -- our new implementation doesn't do it, right? 😄 (E.g. it normalizes x * (1 - 1) to x - x, not 0.)

Are you including these tests to document the kind of extra simp-ing that field_simp currently does and that will be lost?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Might as well keep the tests, but can you add a half-sentence to your comment here noting that this isn't necessarily in scope for field_simp, just a documentation of current behaviour?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Our implementation could decide to

  • unify x * y and y * x (for example),
  • and then decide to cancel x - x terms, right?

(It probably doesn't do so, one could argue whether it even should.) In any case, documenting this seems useful.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Our implementation normalizes x * y - y * x to x * y * (1 - 1), it just doesn't normalize the numeric subtraction to a zero. Anyway, that decision will get discussed down the line!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Similarly to how we didn't decide about the 0 * x case yet either. 👍

@hrmacbeth
Copy link
Copy Markdown
Member

Thanks!

bors d+

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Aug 14, 2025

✌️ grunweg can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@ghost ghost added the delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). label Aug 14, 2025
@grunweg
Copy link
Copy Markdown
Contributor Author

grunweg commented Aug 14, 2025

Added a comment, and another small test (straightforward, I presume). I'll wait with merging so you have a chance to take a quick look also.

@hrmacbeth
Copy link
Copy Markdown
Member

LGTM!

@grunweg
Copy link
Copy Markdown
Contributor Author

grunweg commented Aug 14, 2025

Thanks for the quick review - makes contribution (and collaboration) so much more enjoyable!
bors merge

mathlib-bors bot pushed a commit that referenced this pull request Aug 14, 2025
Add a few more tests documenting current features of field_simp (or their absence). Extension to #28362; all of these have been discussed in the current field_simp rewrite with @FLDutchmann  and @hrmacbeth.
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Aug 14, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(MathlibTest/FieldSimp): add a few more tests [Merged by Bors] - feat(MathlibTest/FieldSimp): add a few more tests Aug 14, 2025
@mathlib-bors mathlib-bors bot closed this Aug 14, 2025
Julian added a commit to Aaron1011/mathlib4 that referenced this pull request Aug 16, 2025
* origin/master: (508 commits)
  feat(Logic/Basic): forall_and_index (leanprover-community#27737)
  feat(Algebra/intNorm): `x` divides `intNorm x` (leanprover-community#28021)
  feat(RingTheory/MvPolynomial/MonomialOrder): some lemmas about degree (leanprover-community#26000)
  chore: more elementary Motzkin polynomial proof (leanprover-community#28482)
  feat: e-seminormed monoid (leanprover-community#27385)
  feat(RingTheory): ` (⊥ : Ideal R) ^ n = ⊥` (leanprover-community#28171)
  fix(LinearAlgebra/Dimension/ErdosKaplansky): authorship (leanprover-community#28513)
  chore: golf entire `X_pow_eq_monomial` (leanprover-community#28504)
  feat(RingTheory): invertible modules and Picard group (leanprover-community#25337)
  chore: use delta `deriving` for leanprover-community#380 (leanprover-community#28498)
  feat: add bilinear maps for vector/matrix products (leanprover-community#28130)
  feat(Counterexamples): topologists' sine curve (leanprover-community#25833)
  feat(Analysis/Convex): doubly stochastic matrices have operator norm at most one (leanprover-community#28453)
  chore(Topology/Compactification): deprecate duplicate `ultrafilter_pure_injective` (leanprover-community#28436)
  feat: add `@[simp]` to `Multiset.cons_le_cons` and `Finset.insert_subset_insert` (leanprover-community#28285)
  feat: make `ring` work for semifields (leanprover-community#28494)
  feat: filtering lists and bounded quantifiers are primitive recursive (leanprover-community#26295)
  chore(Analysis/Analytic): split `Analytic.Basic` (leanprover-community#26270)
  refactor: tidy `mulVec` and `vecMul` lemmas about `•` (leanprover-community#28450)
  feat(Order/WellFounded): Acc and infinite descending chain (leanprover-community#28120)
  feat(NumberTheory/Padics): {Int,Rat}.padicValuation (leanprover-community#27667)
  chore(*): address a few timeout-related porting notes (leanprover-community#28483)
  feat(Algebra): toAlgebra_algebraMap (leanprover-community#28238)
  feat(Shrink): `IsCancelMul` instance (leanprover-community#28407)
  chore(Geometry): golf entire `chart_eq'` and `orthogonalProjection_orthogonalProjection` (leanprover-community#28485)
  feat: shifted geometric series and a `ProbabilityMeasure` version of `measure_iUnion_le` (leanprover-community#28087)
  chore(LinearAlgebra/PiTensorProduct): `rw` away use of `erw` in `lifts_zero` (leanprover-community#27554)
  feat(RingTheory): faithfully flat ring maps (leanprover-community#24530)
  chore(Geometry/RingedSpace): remove use of `erw` in `stalkSpecializes_stalkMap` (leanprover-community#27656)
  chore: add the Brownian motion project to downstream_repos.yml (leanprover-community#28459)
  feat(CategoryTheory/Sites/SheafOfTypes): composition of a sheaf with uliftFunctor is still a sheaf (leanprover-community#27816)
  feat(Valuation/DiscreteValuationRel): val relations with compatible valuations to Zm0 are IsDiscrete (leanprover-community#27213)
  chore(*): process a bunch of `aesop`-related porting notes (leanprover-community#28402)
  feat(CategoryTheory): abstract argument for the stability under transfinite compositions (leanprover-community#26030)
  chore: bump toolchain to v4.23.0-rc2 (leanprover-community#28454)
  chore(FieldTheory/Finite): fermat's little theorem in Nat form (leanprover-community#27962)
  feat(Combinatorics/SimpleGraph/Paths): add theorem `SimpleGraph.Walk.IsPath.concat` (leanprover-community#27582)
  feat(Slope): slope_pos_iff_of_le and related lemmas (leanprover-community#28039)
  feat: tactic analysis framework (leanprover-community#26683)
  chore(Data/EReal): deprecate `add_pos_of_nonneg_of_pos` and `add_ne_top_iff_of_ne_bot` (duplicates) (leanprover-community#28424)
  feat(MathlibTest/FieldSimp): add a few more tests (leanprover-community#28413)
  chore(RingTheory/HahnSeries): deprecate duplicate `orderTop_add_orderTop_le_orderTop_mul` (leanprover-community#28231)
  chore(AlgebraicGeometry/IdealSheaf): deprecate duplicate `AlgebraicGeometry.Scheme.IdealSheafData.Scheme.zeroLocus_radical` (leanprover-community#28202)
  feat(Algebra/Order): ArchimedeanClass ball (leanprover-community#27885)
  chore(Geometry/RingedSpace): remove use of `erw` in `isUnit_of_isUnit_germ` (leanprover-community#27660)
  feat(SkewMonoidAlgebra): coeff_mul lemmas (leanprover-community#27255)
  chore(LinearAlgebra): golf entire `isUnit_det` (leanprover-community#28438)
  chore(FieldTheory/IntermediateField): golf entire `coe_sum` and `coe_prod` (leanprover-community#28431)
  feat: separate linter error message for empty doc-strings (leanprover-community#27895)
  feat(RingTheory/PowerSeries/Binomial): add basic lemmas, golf (leanprover-community#27497)
  ...
mathlib-bors bot pushed a commit that referenced this pull request Aug 19, 2025
Following on from #28362 and #28413: a few more `field_simp` tests and light cleanup of the test file.
pfaffelh pushed a commit to pfaffelh/mathlib4 that referenced this pull request Aug 20, 2025
Following on from leanprover-community#28362 and leanprover-community#28413: a few more `field_simp` tests and light cleanup of the test file.
Paul-Lez pushed a commit to Paul-Lez/mathlib4 that referenced this pull request Aug 23, 2025
…ty#28413)

Add a few more tests documenting current features of field_simp (or their absence). Extension to leanprover-community#28362; all of these have been discussed in the current field_simp rewrite with @FLDutchmann  and @hrmacbeth.
Paul-Lez pushed a commit to Paul-Lez/mathlib4 that referenced this pull request Aug 23, 2025
Following on from leanprover-community#28362 and leanprover-community#28413: a few more `field_simp` tests and light cleanup of the test file.
pechersky pushed a commit to pechersky/mathlib4 that referenced this pull request Aug 25, 2025
…ty#28413)

Add a few more tests documenting current features of field_simp (or their absence). Extension to leanprover-community#28362; all of these have been discussed in the current field_simp rewrite with @FLDutchmann  and @hrmacbeth.
pechersky pushed a commit to pechersky/mathlib4 that referenced this pull request Aug 25, 2025
Following on from leanprover-community#28362 and leanprover-community#28413: a few more `field_simp` tests and light cleanup of the test file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants