Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Data/Fin/Basic): Refactor succAbove and predAbove. #9145

Open
wants to merge 107 commits into
base: master
Choose a base branch
from

Conversation

linesthatinterlace
Copy link
Collaborator

@linesthatinterlace linesthatinterlace commented Dec 19, 2023

We currently implemented succAbove and predAbove in a way that encourages users to reduce things down to fiddling linear arithmetic, which makes it difficult to prove complicated identities.


It is possible to re-define these and improve the proofs dramatically. An aid to this is to add "predAboveOfNe", which broadly is similar to predAbove but is a true inverse to succAbove in the appropriate manner. One can then prove results about this which let the simplifier make short work of identities that would otherwise be fairly complicated.

This also has the advantage of making insertNth easier to use. (To be demonstrated!)

Open in Gitpod

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the blocked-by-other-PR This PR depends on another PR to Mathlib label Dec 19, 2023
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
Mathlib/Data/Fin/Basic.lean Outdated Show resolved Hide resolved
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Jan 7, 2024
@linesthatinterlace linesthatinterlace removed the blocked-by-other-PR This PR depends on another PR to Mathlib label Jan 7, 2024
semorrison and others added 10 commits January 16, 2024 15:58
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
adds instances for the new `NonUnital(Semi)NormedCommRing` classes, and also adds some missing instances to `Analysis.Normed.Field.Basic`.

This gives us our first example of an actually non-unital *commutative* C⋆-algebra: `C₀(X, ℂ)` where `X` is a locally compact, noncompact Hausdorff space.

- [x] depends on: #8664
Generalize some theorems from `{β : Type*} [Countable β] (f : β → α)`
to `{ι : Sort*} [Countable ι] (f : ι → α)`.
This way they automatically work for `f : (p : Prop) → α`.

* Generalize `MeasureTheory.OuterMeasure.iUnion_null`,
  `MeasureTheory.OuterMeasure.iUnion_null_iff`,
  `MeasureTheory.measure_iUnion_null`, and
  `MeasureTheory.measure_iUnion_null_iff`.
* Deprecate `MeasureTheory.OuterMeasure.iUnion_null_iff'`
  and `MeasureTheory.measure_iUnion_null_iff'`.
* Generalize `MeasureTheory.exists_measurable_superset_forall_eq`
  and `MeasureTheory.exists_measure_pos_of_not_measure_iUnion_null`.
* Reorder implicit arguments in some theorems (move `ι` around).
Some of the concepts in `LinearAlgebra/SesquilinearForm` can be generalised from Sesquilinear Forms to Sesquilinear Maps with little or no impact on the rest of Mathlib. This PR makes those generalisations.

Further generalisations are likely possible, but the scope of this PR is to only consider changes which do not require non-trivial modifications to other parts of Mathlib, or other sections in `SesquilinearForm.lean`. Further changes can be considered in subsequent PRs if desired.



Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com>
This also adds some missing `to_additive`s for `vadd`.
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Jan 16, 2024
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the blocked-by-other-PR This PR depends on another PR to Mathlib label Jan 16, 2024
@linesthatinterlace linesthatinterlace removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Jan 16, 2024
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot removed the blocked-by-other-PR This PR depends on another PR to Mathlib label Jan 16, 2024
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Jan 17, 2024
@linesthatinterlace
Copy link
Collaborator Author

This PR is going to be closed, and #10283 will replace its substantative results. (It is now stale, and I have extracted the key changes and implemented them piecemeal.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merge-conflict The PR has a merge conflict with master, and needs manual merging.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet