[Merged by Bors] - chore: use delta deriving for #380#28498
[Merged by Bors] - chore: use delta deriving for #380#28498
deriving for #380#28498Conversation
The new delta deriving handler from leanprover/lean4#9800 makes it possible to address most of issue #380. There are still some cases that are not handled: - Some definitions are abbreviations, so there is no point in deriving instances, since they already inherit instances. Plus, adding instances to abbreviations adds intances to the unfolded abbreviation, which might not be wanted. - Deriving `Functor.Full` and `Functor.Faithful` often gives the wrong instance. For example, with `Skeleton` and `fromSkeleton`, the derived instances are in terms of `InducedCategory`, not `Skeleton. It might not ever be possible to derive instances in this situation.
PR summary 3fb2e06161Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
jcommelin
left a comment
There was a problem hiding this comment.
I'm going to merge this. It is a very clear and substantial improvement. The cases where deriving still does not work have clear comments that can be dealt with in a follow-up PR.
bors merge
The new delta deriving handler from leanprover/lean4#9800 makes it possible to address most of issue #380. There are still some cases that are not handled: - Some definitions are abbreviations, so there is no point in deriving instances, since they already inherit instances. Plus, adding instances to abbreviations adds intances to the unfolded abbreviation, which might not be wanted. - Deriving `Functor.Full` and `Functor.Faithful` often gives the wrong instance. For example, with `Skeleton` and `fromSkeleton`, the derived instances are in terms of `InducedCategory`, not `Skeleton`. It might not ever be possible to derive instances in this situation.
|
Pull request successfully merged into master. Build succeeded: |
deriving for #380deriving for #380
* 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) ...
…community#28498) The new delta deriving handler from leanprover/lean4#9800 makes it possible to address most of issue leanprover-community#380. There are still some cases that are not handled: - Some definitions are abbreviations, so there is no point in deriving instances, since they already inherit instances. Plus, adding instances to abbreviations adds intances to the unfolded abbreviation, which might not be wanted. - Deriving `Functor.Full` and `Functor.Faithful` often gives the wrong instance. For example, with `Skeleton` and `fromSkeleton`, the derived instances are in terms of `InducedCategory`, not `Skeleton`. It might not ever be possible to derive instances in this situation.
…community#28498) The new delta deriving handler from leanprover/lean4#9800 makes it possible to address most of issue leanprover-community#380. There are still some cases that are not handled: - Some definitions are abbreviations, so there is no point in deriving instances, since they already inherit instances. Plus, adding instances to abbreviations adds intances to the unfolded abbreviation, which might not be wanted. - Deriving `Functor.Full` and `Functor.Faithful` often gives the wrong instance. For example, with `Skeleton` and `fromSkeleton`, the derived instances are in terms of `InducedCategory`, not `Skeleton`. It might not ever be possible to derive instances in this situation.
The new delta deriving handler from leanprover/lean4#9800 makes it possible to address most of issue #380. There are still some cases that are not handled:
Functor.FullandFunctor.Faithfuloften gives the wrong instance. For example, withSkeletonandfromSkeleton, the derived instances are in terms ofInducedCategory, notSkeleton. It might not ever be possible to derive instances in this situation.