[Merged by Bors] - feat: define Descriptive.Tree#18763
[Merged by Bors] - feat: define Descriptive.Tree#18763sven-manthe wants to merge 20 commits intomasterfrom
Conversation
|
messageFile.md |
grunweg
left a comment
There was a problem hiding this comment.
Some stylistic comments. I don't know the mathematics behind this.
General questions/suggestions: can you link to some branch using this definition, to convince reviewers your design choices are workable? Is there some "easy" API you can include already? Definitions without API are always harder to review.
| Released under Apache 2.0 license as described in the file LICENSE. | ||
| Authors: Sven Manthe | ||
| -/ | ||
| import Mathlib.Order.CompleteSublattice |
There was a problem hiding this comment.
Is there a reason this is not in the CompleteSublattice file? Do you expect more material to join this file?
There was a problem hiding this comment.
The main reason is that I expect that most users of CompleteSublattice don't need this file.
There was a problem hiding this comment.
Hm. I see where you're coming from, but I'm not sure if this is common practice in mathlib... I'll wait for other reviewers to chime in.
Co-authored-by: grunweg <rothgami@math.hu-berlin.de>
Co-authored-by: grunweg <rothgami@math.hu-berlin.de>
|
I didn't provide more API yet to keep the PR short for review, but could change this of course. I don't want to create too many dependent branches (in theory, the code using this definition is public in the mentioned repository) |
I see. At the moment, you have basically no API for the new definition. I think that probably errs on the side of "too little". Is there a modest amount of API you can sensibly add? If not, can you provide some pointers to where this is used? If I am to review this PR, looking through several thousand lines of code is not so nice. |
|
I'll try to add some API later. About pointers: The basic API is in the file https://github.com/sven-manthe/A-formalization-of-Borel-determinacy-in-Lean/blob/master/BorelDet/Tree/trees.lean |
|
Is there a reason to use this design, as opposed to the usual |
Originally I worked with an inductive type, and provided manually |
I agree that there is nothing special about complete lattices here and in general, every weakening of complete Boolean algebras could be used |
My thinking would be "no", because this means we have a huge amount of API to duplicate between |
|
I agree with the comments here stating that the current design has problems (like duplication for subtypes of |
|
I've advised Sven on this project, but not on these particular definitions (I think, or very long ago). Honestly I think the design here is fine:
Are there any other objections raised here? If not, shall we just merge this? |
Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
|
messageFile.md (please merge master: see Zulip) |
…nto sven-trees-dst-1
|
messageFile.md |
PR summary bb370cd79dImport changes for modified filesNo significant changes to the import graph Import changes for all files
|
| @[simp] theorem mem_iInf : x ∈ ⨅ i : I, f i ↔ ∀ i : I, x ∈ f i := by simp [← mem_subtype] | ||
| @[simp] theorem mem_inf : x ∈ S ⊓ T ↔ x ∈ S ∧ x ∈ T := by simp [← mem_subtype] | ||
| @[simp] theorem mem_top : x ∈ (⊤ : L) := by simp [← mem_subtype] | ||
| @[simp] lemma setLike_mem_coe : x ∈ T.val ↔ x ∈ T := Iff.rfl |
There was a problem hiding this comment.
This can probably be removed since it's just SetLike.mem_coe.
There was a problem hiding this comment.
But not up to reducible equality, I guess (at least the proof by simp only [SetLike.mem_coe] fails)
There was a problem hiding this comment.
Interesting, I've always thought they are reducibly equal ... I think we should prefer (T : Set X) over T.val.
|
To keep everyone up-to-date: I now generalized the |
|
LGTM |
|
🚀 Pull request has been placed on the maintainer queue by alreadydone. |
|
bors r+ |
Define trees in the sense of descriptive set theory. Deduce SetLike from a more general instance about complete sublattices of power set lattices. Taken from https://github.com/sven-manthe/A-formalization-of-Borel-determinacy-in-Lean Co-authored-by: sven-manthe <147848313+sven-manthe@users.noreply.github.com> Co-authored-by: sven-manthe <sven.manthe@uni-bonn.de>
|
Pull request successfully merged into master. Build succeeded: |
* origin/master: (294 commits) feat: equalizers and coequalizers in the category of ind-objects (#21139) doc: turn more links to Stacks into `@[stacks]` tags (#21135) feat(Asymptotics): prove `IsLittleOTVS.add` (#20578) feat(Algebra/Polynomial): `Polynomial.aeval` for product algebras (#21062) chore: import Std in Mathlib.lean (#21126) feat(Data/Matroid/Circuit): fundamental circuits and extensionality (#21145) feat(CategoryTheory/Endofunctor): prove the dual form of Lambek's Lemma on terminal coalgebra (#21140) feat(SetTheory/Game/PGame): rewrite left moves of `-x` as right moves of `x` under binders (#21109) feat(RingTheory/Localization/Pi): localization of a finite direct product is a product of localizations (#19042) doc: fixed notation error in customizing category composition (#21132) feat(Matrix): more lemmas for `PEquiv.toMatrix` (#21143) chore(SupIndep): speedup the `Decidable` instance (#21114) fix(CI): use `Elab.async=false` for late importers workflow (#21147) feat(Topology/Algebra/Indicator): indicator of a clopen is continuous (#20687) feat(Data/Matroid/Rank/Cardinal): Cardinality-valued rank function (#20921) feat(Algebra): `Pi.single_induction` (#21141) chore(BigOperators/Fin): golf a proof (#21131) feat: generalize tangent cone lemmas to TVS (#20859) feat(CategoryTheory): `Comma.snd L R` is final if `R` is final and domains are filtered (#21136) refactor: unapply matrix lemmas (#21091) chore(Algebra/Category): `erw` -> `rw` (#21130) feat(CategoryTheory): filteredness of Comma catgories given finality of one of the functors (#21128) feat(Algebra/Category): `ConcreteCategory` instance for `ModuleCat` (#21125) feat: PSum of finite sorts is finite (#20285) feat: inequality on the integral of a convex function of a RN derivative (#21093) feat: `(v +ᵥ s) -ᵥ (v +ᵥ t) = s -ᵥ t` (#21058) chore: rename the fact that `(∀ a < a₁, a ≤ a₂) ↔ a₁ ≤ a₂` in a dense order (#20317) feat: a `RelHom` preserves directedness (#20080) feat(Combinatorics/SimpleGraph): add definitions and theorems about the coloring of sum graphs (#18677) chore(Data/Matrix/PEquiv): clean up names (#21108) feat(Algebra/Category): `ConcreteCategory` instances for rings (#20815) feat: define Descriptive.Tree (#18763) chore(Data/Complex/Exponential): split trig functions to new file (#21075) feat(Logic/IsEmpty/Relator): empty on sides (#20319) feat(Algebra/Category): `ConcreteCategory` instance for `AlgebraCat` (#21121) feat(NumberTheory/LSeries): results involving partial sums of coefficients (part 1) (#20661) feat(RingTheory/LaurentSeries): add algebraEquiv (#21004) chore(SetTheory/Game/Impartial): golf two proofs (#21074) feat(CategoryTheory/Subpresheaf): preimage/image/range of subpresheaves (#21047) feat(RingTheory/IntegralClosure): `Algebra.IsIntegral` transfers via surjective homomorphisms (#21023) feat(`InformationTheory/Hamming`): Add AddGroup instances (#20994) feat(RingTheory/IntegralClosure): prove `Module.Finite R (adjoin R S)` for finite set `S` of integral elements (#20970) feat(RingTheory/Artinian): `IsUnit a` iff `a ∈ R⁰` for an artinian ring `R` (#21084) feat: separating set in the category of ind-objects (#21082) feat: derivWithin lemmas (#21092) chore(Fintype): golf a proof (#21113) chore: golf using `funext₂` (#21106) chore(Algebra/Group/Submonoid/Operations): move instances to new file (#21067) doc(Algebra/BigOperators/Fin): change 'product' to 'sum' in doc-string of additivised declarations (#21101) doc(ComputeDegree): typos (#21095) ...
* polynomial-sequences: (308 commits) Use the lemma we already added. Minor reordering. This is true even for the trivial ring. Also add the lt versions and the other inj lemma. Also add the basis ne versions. This seems also like it should be simp. Back to sorry free. And the natDegree version. feat: equalizers and coequalizers in the category of ind-objects (#21139) doc: turn more links to Stacks into `@[stacks]` tags (#21135) feat(Asymptotics): prove `IsLittleOTVS.add` (#20578) feat(Algebra/Polynomial): `Polynomial.aeval` for product algebras (#21062) chore: import Std in Mathlib.lean (#21126) feat(Data/Matroid/Circuit): fundamental circuits and extensionality (#21145) feat(CategoryTheory/Endofunctor): prove the dual form of Lambek's Lemma on terminal coalgebra (#21140) feat(SetTheory/Game/PGame): rewrite left moves of `-x` as right moves of `x` under binders (#21109) feat(RingTheory/Localization/Pi): localization of a finite direct product is a product of localizations (#19042) doc: fixed notation error in customizing category composition (#21132) feat(Matrix): more lemmas for `PEquiv.toMatrix` (#21143) chore(SupIndep): speedup the `Decidable` instance (#21114) fix(CI): use `Elab.async=false` for late importers workflow (#21147) feat(Topology/Algebra/Indicator): indicator of a clopen is continuous (#20687) feat(Data/Matroid/Rank/Cardinal): Cardinality-valued rank function (#20921) feat(Algebra): `Pi.single_induction` (#21141) chore(BigOperators/Fin): golf a proof (#21131) feat: generalize tangent cone lemmas to TVS (#20859) feat(CategoryTheory): `Comma.snd L R` is final if `R` is final and domains are filtered (#21136) refactor: unapply matrix lemmas (#21091) chore(Algebra/Category): `erw` -> `rw` (#21130) feat(CategoryTheory): filteredness of Comma catgories given finality of one of the functors (#21128) feat(Algebra/Category): `ConcreteCategory` instance for `ModuleCat` (#21125) feat: PSum of finite sorts is finite (#20285) feat: inequality on the integral of a convex function of a RN derivative (#21093) feat: `(v +ᵥ s) -ᵥ (v +ᵥ t) = s -ᵥ t` (#21058) chore: rename the fact that `(∀ a < a₁, a ≤ a₂) ↔ a₁ ≤ a₂` in a dense order (#20317) feat: a `RelHom` preserves directedness (#20080) feat(Combinatorics/SimpleGraph): add definitions and theorems about the coloring of sum graphs (#18677) chore(Data/Matrix/PEquiv): clean up names (#21108) feat(Algebra/Category): `ConcreteCategory` instances for rings (#20815) feat: define Descriptive.Tree (#18763) chore(Data/Complex/Exponential): split trig functions to new file (#21075) feat(Logic/IsEmpty/Relator): empty on sides (#20319) feat(Algebra/Category): `ConcreteCategory` instance for `AlgebraCat` (#21121) feat(NumberTheory/LSeries): results involving partial sums of coefficients (part 1) (#20661) feat(RingTheory/LaurentSeries): add algebraEquiv (#21004) chore(SetTheory/Game/Impartial): golf two proofs (#21074) feat(CategoryTheory/Subpresheaf): preimage/image/range of subpresheaves (#21047) feat(RingTheory/IntegralClosure): `Algebra.IsIntegral` transfers via surjective homomorphisms (#21023) feat(`InformationTheory/Hamming`): Add AddGroup instances (#20994) feat(RingTheory/IntegralClosure): prove `Module.Finite R (adjoin R S)` for finite set `S` of integral elements (#20970) ...
Define trees in the sense of descriptive set theory. Deduce SetLike from a more general instance about complete sublattices of power set lattices.
Taken from https://github.com/sven-manthe/A-formalization-of-Borel-determinacy-in-Lean