-
Notifications
You must be signed in to change notification settings - Fork 460
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: swap arguments to Membership.mem
#5020
Conversation
Mathlib CI status (docs):
|
I should have clean CI for the PR branch of mathlib and all but one core test passing. I will try to fix that later tonight and highlight the less-than-desirable changes. |
awaiting-review |
@TwoFX and @semorrison I attempted to apply the label for awaiting review but it failed. There is now a working branch of mathlib. I created leanprover-community/mathlib4#15870 to, at the moment, provide an interface to highlight anything surprising. |
af06c79
to
88ce999
Compare
src/Std/Tactic/BVDecide/LRAT/Internal/Formula/RupAddResult.lean
Outdated
Show resolved
Hide resolved
Currently we use `Set.inclusion` to construct functions between `Opens`. This is a form of defeq abuse which is exposed by leanprover/lean4#5020. In this PR, we introduce `Opens.inclusion` and replace uses of `Set.inclusion` with it to avoid passing through a coercion to `Set`. Since there is a version, not analogous to `Set.inclusion`, squatting on this name we rename it to `Opens.inclusion'`. Co-authored-by: Matthew Robert Ballard <[email protected]>
We make miscellaneous changes to either remove or clarify `adaptation_notes` coming from leanprover/lean4#5020. Co-authored-by: Kim Morrison <[email protected]>
Currently we use `Set.inclusion` to construct functions between `Opens`. This is a form of defeq abuse which is exposed by leanprover/lean4#5020. In this PR, we introduce `Opens.inclusion` and replace uses of `Set.inclusion` with it to avoid passing through a coercion to `Set`. Since there is a version, not analogous to `Set.inclusion`, squatting on this name we rename it to `Opens.inclusion'`. Co-authored-by: Matthew Robert Ballard <[email protected]>
We make miscellaneous changes to either remove or clarify `adaptation_notes` coming from leanprover/lean4#5020. Co-authored-by: Kim Morrison <[email protected]>
Currently we use `Set.inclusion` to construct functions between `Opens`. This is a form of defeq abuse which is exposed by leanprover/lean4#5020. In this PR, we introduce `Opens.inclusion` and replace uses of `Set.inclusion` with it to avoid passing through a coercion to `Set`. Since there is a version, not analogous to `Set.inclusion`, squatting on this name we rename it to `Opens.inclusion'`. Co-authored-by: Matthew Robert Ballard <[email protected]>
We make miscellaneous changes to either remove or clarify `adaptation_notes` coming from leanprover/lean4#5020. Co-authored-by: Kim Morrison <[email protected]>
Currently we use `Set.inclusion` to construct functions between `Opens`. This is a form of defeq abuse which is exposed by leanprover/lean4#5020. In this PR, we introduce `Opens.inclusion` and replace uses of `Set.inclusion` with it to avoid passing through a coercion to `Set`. Since there is a version, not analogous to `Set.inclusion`, squatting on this name we rename it to `Opens.inclusion'`. Co-authored-by: Matthew Robert Ballard <[email protected]>
We make miscellaneous changes to either remove or clarify `adaptation_notes` coming from leanprover/lean4#5020. Co-authored-by: Kim Morrison <[email protected]>
…dule` to get a type (#16509) We add ```lean instance (priority := high) coeSort : CoeSort (LieSubmodule R L M) (Type w) where coe N := { x : M // x ∈ N } ``` to avoid the coercion to a `Sort` being `{ x : M // x ∈ N.toSubmodule }` and instead be `N` itself. This allows removal of all `adapation_note`s from leanprover/lean4#5020. Ultimately the API here should be expanded and `Coe (LieSubmodule R L M) (Submodule R M)` should be minimized or removed to avoid forcing Lean to unify `LieSubmodule` and `Submodule` unnecessarily. Co-authored-by: Matthew Robert Ballard <[email protected]>
This was broken by leanprover/lean4#5020
This was broken by leanprover/lean4#5020
The parameters to Membership.mem have been swapped, which affects all Membership instances. leanprover/lean4#5020
This PR fixes `simp only [· ∈ ·]` after leanprover#5020. Fixes leanprover#5905
We swap the arguments for
Membership.mem
so that when proceeded by aSetLike
coercion, as is often the case in Mathlib, the resulting expression is recognized as eta expanded and reduce for many computations. The most beneficial outcome is that the discrimination tree keys for instances and simp lemmas concerning subsets become more robust resulting in more efficient searches.Closes
RFC
#4932